View Issue Details

This bug affects 1 person(s).
 2
IDProjectCategoryView StatusLast Update
07817Bug reportsOtherpublic2013-05-14 14:38
ReporterGambito Assigned Toc_schmitz  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version2.00+ 
Fixed in Version2.00+ 
Summary07817: MS SqlServer Error when creating Question Groups in more than one languge
Description

When creating Question Groups in more than one language we obtain the Exception indicated in "Additional Information".

Steps To Reproduce
  1. Create a Survey
  2. Add an additional language to the survey
  3. Add a question group in both languages
Additional Information

CDbException
CDbCommand failed to execute the SQL statement: SQLSTATE[23000]: [Microsoft][SQL Server Native Client 11.0][SQL Server]Cannot insert explicit value for identity column in table 'lime_groups' when IDENTITY_INSERT is set to OFF.. The SQL statement executed was: INSERT INTO [dbo].[lime_groups] ([sid], [group_name], [group_order], [randomization_group], [gid], [description], [language]) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6). Bound with :yp0=838298, :yp1='Encuesta de Prueba 1, Sección de Preguntas 2', :yp2=3, :yp3='', :yp4=6, :yp5='Sección de Preguntas 2', :yp6='es'

D:\Web\limesurvey\framework\db\CDbCommand.php(354)

342 return $n;
343 }
344 catch(Exception $e)
345 {
346 if($this->_connection->enableProfiling)
347 Yii::endProfile('system.db.CDbCommand.execute('.$this->getText().')','system.db.CDbCommand.execute');
348 $errorInfo = $e instanceof PDOException ? $e->errorInfo : null;
349 $message = $e->getMessage();
350 Yii::log(Yii::t('yii','CDbCommand::execute() failed: {error}. The SQL statement executed was: {sql}.',
351 array('{error}'=>$message, '{sql}'=>$this->getText().$par)),CLogger::LEVEL_ERROR,'system.db.CDbCommand');
352 if(YII_DEBUG)
353 $message .= '. The SQL statement executed was: '.$this->getText().$par;
354 throw new CDbException(Yii::t('yii','CDbCommand failed to execute the SQL statement: {error}',
355 array('{error}'=>$message)),(int)$e->getCode(),$errorInfo);
356 }
357 }
358
359 /*
360
Executes the SQL statement and returns query result.
361 This method is for executing an SQL query that returns result set.
362
@param array $params input parameters (name=>value) for the SQL execution. This is an alternative
363 to {@link bindParam} and {@link bindValue}. If you have multiple input parameters, passing
364
them in this way can improve the performance. Note that if you pass parameters in this way,
365 you cannot bind parameters or values using {@link bindParam} or {@link bindValue}, and vice versa.
366
binding methods and the input parameters this way can improve the performance.
Stack Trace
#0 +

D:\Web\limesurvey\framework\db\ar\CActiveRecord.php(1014): CDbCommand->execute()
1009 {
1010 Yii::trace(get_class($this).'.insert()','system.db.ar.CActiveRecord');
1011 $builder=$this->getCommandBuilder();
1012 $table=$this->getMetaData()->tableSchema;
1013 $command=$builder->createInsertCommand($table,$this->getAttributes($attributes));
1014 if($command->execute())
1015 {
1016 $primaryKey=$table->primaryKey;
1017 if($table->sequenceName!==null)
1018 {
1019 if(is_string($primaryKey) && $this->$primaryKey===null)

#1 +

D:\Web\limesurvey\framework\db\ar\CActiveRecord.php(787): CActiveRecord->insert(null)
782 @return boolean whether the saving succeeds
783
/
784 public function save($runValidation=true,$attributes=null)
785 {
786 if(!$runValidation || $this->validate($attributes))
787 return $this->getIsNewRecord() ? $this->insert($attributes) : $this->update($attributes);
788 else
789 return false;
790 }
791
792 /**

#2 +
– D:\Web\limesurvey\application\controllers\admin\questiongroup.php(209): CActiveRecord->save()
204 );
205
206 $group = new Groups;
207 foreach ($aData as $k => $v)
208 $group->$k = $v;
209 $group->save();
210 }
211 }
212 // This line sets the newly inserted group as the new group
213 if (isset($groupid))
214 $gid = $groupid;

#3 unknown(0): questiongroup->insert("838298")
#4 +

D:\Web\limesurvey\framework\web\actions\CAction.php(107): ReflectionMethod->invokeArgs(questiongroup, array("838298"))
102 else if($param->isDefaultValueAvailable())
103 $ps[]=$param->getDefaultValue();
104 else
105 return false;
106 }
107 $method->invokeArgs($object,$ps);
108 return true;
109 }
110 }

#5 +
– D:\Web\limesurvey\application\core\Survey_Common_Action.php(100): CAction->runWithParamsInternal(questiongroup, ReflectionMethod, array("r" => "admin/questiongroup/sa/insert/surveyid/838298", "sa" => "insert", "surveyid" => "838298", "iSurveyId" => "838298", ...))
095 $oMethod = new ReflectionMethod($this, $sDefault);
096 }
097
098 // We're all good to go, let's execute it
099 // runWithParamsInternal would automatically get the parameters of the method and populate them as required with the params
100 return parent::runWithParamsInternal($this, $oMethod, $params);
101 }
102
103 /*
104
Some functions have different parameters, which are just an alias of the
105 * usual parameters we're getting in the url. This function just populates

#6 +

D:\Web\limesurvey\framework\web\CController.php(309): Survey_Common_Action->runWithParams(array("r" => "admin/questiongroup/sa/insert/surveyid/838298", "sa" => "insert", "surveyid" => "838298"))
304 {
305 $priorAction=$this->_action;
306 $this->_action=$action;
307 if($this->beforeAction($action))
308 {
309 if($action->runWithParams($this->getActionParams())===false)
310 $this->invalidActionParams($action);
311 else
312 $this->afterAction($action);
313 }
314 $this->_action=$priorAction;

#7 +

D:\Web\limesurvey\framework\web\CController.php(287): CController->runAction(questiongroup)
282 @see runAction
283
/
284 public function runActionWithFilters($action,$filters)
285 {
286 if(empty($filters))
287 $this->runAction($action);
288 else
289 {
290 $priorAction=$this->_action;
291 $this->_action=$action;
292 CFilterChain::create($this,$action,$filters)->run();

#8 +

D:\Web\limesurvey\framework\web\CController.php(266): CController->runActionWithFilters(questiongroup, array())
261 {
262 if(($parent=$this->getModule())===null)
263 $parent=Yii::app();
264 if($parent->beforeControllerAction($this,$action))
265 {
266 $this->runActionWithFilters($action,$this->filters());
267 $parent->afterControllerAction($this,$action);
268 }
269 }
270 else
271 $this->missingAction($actionID);

#9 +
– D:\Web\limesurvey\application\controllers\AdminController.php(169): CController->run("questiongroup")
164 $this->redirect($this->createUrl('/admin/authentication/sa/login'));
165 }
166
167 }
168
169 return parent::run($action);
170 }
171
172 /*
173
Routes all the actions to their respective places
174 *

#10 +

D:\Web\limesurvey\framework\web\CWebApplication.php(276): AdminController->run("questiongroup")
271 {
272 list($controller,$actionID)=$ca;
273 $oldController=$this->_controller;
274 $this->_controller=$controller;
275 $controller->init();
276 $controller->run($actionID);
277 $this->_controller=$oldController;
278 }
279 else
280 throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
281 array('{route}'=>$route===''?$this->defaultController:$route)));

#11 +

D:\Web\limesurvey\framework\web\CWebApplication.php(135): CWebApplication->runController("admin/questiongroup/sa/insert/surveyid/838298")
130 foreach(array_splice($this->catchAllRequest,1) as $name=>$value)
131 $_GET[$name]=$value;
132 }
133 else
134 $route=$this->getUrlManager()->parseUrl($this->getRequest());
135 $this->runController($route);
136 }
137
138 /*
139
Registers the core application components.
140 * This method overrides the parent implementation by registering additional core components.

#12 +

D:\Web\limesurvey\framework\base\CApplication.php(162): CWebApplication->processRequest()
157 */
158 public function run()
159 {
160 if($this->hasEventHandler('onBeginRequest'))
161 $this->onBeginRequest(new CEvent($this));
162 $this->processRequest();
163 if($this->hasEventHandler('onEndRequest'))
164 $this->onEndRequest(new CEvent($this));
165 }
166
167 /**

#13 +

D:\Web\limesurvey\index.php(178): CApplication->run()
173
174
/
175 require_once BASEPATH . 'yii' . EXT;
176 require_once APPPATH . 'core/LSYii_Application' . EXT;
177
178 Yii::createApplication('LSYii_Application', APPPATH . 'config/config' . EXT)->run();
179
180 / End of file index.php /
181 / Location: ./index.php /

2013-05-09 10:51:05 Microsoft-IIS/7.5 Yii Framework/1.1.10 2

TagsNo tags attached.
Attached Files
Bug heat2
Complete LimeSurvey version number (& build)130406
I will donate to the project if issue is resolvedNo
Browser
Database type & versionMicrosoft SQL Server 2008
Server OS (if known)Windows Server 2008 R2 Enterprise
Webserver software & version (if known)Internet Information Services (Version 7.5.7600.16385)
PHP VersionPHP 5.3.23

Users monitoring this issue

There are no users monitoring this issue.

Activities

c_schmitz

c_schmitz

2013-05-09 17:09

administrator   ~25196

Fix committed to master branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=12381

c_schmitz

c_schmitz

2013-05-10 15:39

administrator   ~25220

Fix committed to 2.05 branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&id=12405

c_schmitz

c_schmitz

2013-05-14 14:38

administrator   ~25254

Version 2.0 Build 130514 released

Related Changesets

LimeSurvey: master ada79738

2013-05-09 15:09:24

c_schmitz

Details Diff
Fixed issue 07817: Error when creating question groups in more than one language and using MSSQL server Affected Issues
07817
mod - application/controllers/admin/questiongroup.php Diff File

LimeSurvey: 2.05 aff05bbb

2013-05-10 13:08:18

c_schmitz

Details Diff
Fixed issue 07817: Error when creating question groups in more than one language and using MSSQL server Affected Issues
07817
mod - application/controllers/admin/questiongroups.php Diff File

Issue History

Date Modified Username Field Change
2013-05-09 12:52 Gambito New Issue
2013-05-09 12:52 Gambito File Added: limesurvey_survey_838298.lss
2013-05-09 16:35 c_schmitz Assigned To => c_schmitz
2013-05-09 16:35 c_schmitz Status new => assigned
2013-05-09 17:09 c_schmitz Status assigned => resolved
2013-05-09 17:09 c_schmitz Fixed in Version => 2.00+
2013-05-09 17:09 c_schmitz Resolution open => fixed
2013-05-09 17:09 c_schmitz Changeset attached => LimeSurvey master ada79738
2013-05-09 17:09 c_schmitz Note Added: 25196
2013-05-10 15:39 c_schmitz Changeset attached => LimeSurvey 2.05 aff05bbb
2013-05-10 15:39 c_schmitz Note Added: 25220
2013-05-14 14:38 c_schmitz Note Added: 25254
2013-05-14 14:38 c_schmitz Status resolved => closed