|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Aug 2012
Сообщений: 77
|
SQLLite SQLStatement.executing is true = error --ошибка цикличного запроса ?
Здравствуйте, уважаемые форумчане!
Помогите пожалуйста разобраться с организацией циклического запроса в базу данных. Конвертирую данные из XML (там 200 записей по 96 в каждой) в локальную базу данных, созданную стандартными средствами AS3. При создании базы данных проблем не было: с помощью цикла сформировал названия 96 столбцов и собрал их в команду создания таблицы в базе данных. Дальше пытаюсь с помощью цикла добавлять все последующие записи из XML в созданную базу данных: protected function onLoadXMLCompleteHandlerSQL(event:Event):void // ДОБАВЛЕНИЕ ДАННЫХ В БАЗУ { _urlLoaderSQL.removeEventListener(Event.COMPLETE, onLoadXMLCompleteHandlerSQL); xml = new XML(event.target.data); var stringSQL:String = ''; var stringSQLValues:String = ''; var stringSpace:String = ', '; var tempSQLArray:Array = []; var int:uint = 0; for each (var element:XML in xml.elements()) { int2 ++; if (element.name() == "Item") { for(var i:uint = 0; i<element.elements().length()-1; i++) { if (i == element.elements().length()-2) { stringSpace = ''; } stringSQL += element.elements()[i].name().toString() + stringSpace; stringSQLValues += '@' + element.elements()[i].name().toString() + stringSpace; tempSQLArray.push(['@' + element.elements()[i].name().toString(), element.elements()[i].toString(), element.elements()[i].@_name.toString()]); // параметр } sqlConnection.begin(); sqlStatement = new SQLStatement(); sqlStatement.sqlConnection = sqlConnection; sqlStatement.addEventListener(SQLEvent.RESULT, onSQLResultHandler); sqlStatement.addEventListener(SQLErrorEvent.ERROR, onSQLResultErrorHandler); sqlStatement.text = 'INSERT INTO table_of_content(' + stringSQL + ') VALUES(' + stringSQLValues + ')'; sqlConnection.addEventListener(SQLEvent.BEGIN, onBeginCommitHandler); for (var j:uint = 0; j < tempSQLArray.length; j++) { sqlStatement.parameters[tempSQLArray[j][0]] = tempSQLArray[j][1]; } sqlConnection.commit(); tempSQLArray = []; stringSQL = ''; stringSQLValues = ''; } } } protected function onBeginCommitHandler(event:SQLEvent):void { sqlStatement.execute(); } protected function onSQLResultHandler(event:SQLEvent):void { trace('строка добавлена успешно'); } protected function onSQLResultErrorHandler(event:SQLErrorEvent):void { trace('ошибка); } Цитата:
По одной записи отдельно добавляет, т.е. если тупо прогнать клавишей вышеописанный код, то записи формируются успешно, но как-то 200 раз клацать по кнопке... да и в будущем будет необходимость циклом запросы формировать... Как обойти данную ошибку и применять циклы для формирования запросов? Кто сталкивался прошу помочь.. .
__________________
Набирать программы могут многие, программировать - единицы |
|
|||||
Регистрация: Aug 2012
Сообщений: 77
|
Сделал так как Вы посоветовали, все заработало. Спасибо
__________________
Набирать программы могут многие, программировать - единицы |
Часовой пояс GMT +4, время: 07:12. |
|
« Предыдущая тема | Следующая тема » |
Теги |
db , execute , SqlLite , sqlStatement , xml |
|
|