Название: SQLite запрос Отправлено: Astrologer от Сентябрь 17, 2010, 18:55 Код: СREATE TABLE d__190710_163135L ( id_d__190710_163135L integer primary key autoincrement, Всем привет. Пишу данный запрос и выполняется только первая его часть. Sqlite не любит запятые или "\n"? Название: Re: SQLite запрос Отправлено: crossly от Сентябрь 17, 2010, 19:06 где вы говорите его пишите??
Название: Re: SQLite запрос Отправлено: Kolobok от Сентябрь 17, 2010, 19:13 Это два запроса.
Названия у таблиц хорошие, а главное понятные. Название: Re: SQLite запрос Отправлено: Denjs от Сентябрь 17, 2010, 19:15 и выполнять их надо поотдельности.
Впрочем в скулайте есть фича типа начало-конец чего-то там - типа мини-транзакции. Я не пользовал, но похоже она позволяет несколько завпросов как один отсылать. Название: Re: SQLite запрос Отправлено: Astrologer от Сентябрь 17, 2010, 19:22 Дело не в именах таблиц) А в том что по отдельности они выполняются, а пачкой нет. Пробовал. Вт и не могу разобраться.
Код: void QDbfReader::sql_execute(QString query) Пробовал и так исполнять: Код: .............................. Где dropQuery, createQuery и insertQuery - QString, в которых запросы через ";". Причем в этом случае вылетает ошибка - "No query. Unable to fetch row". ??? Например dropQuery выглядит так. Код: DROP TABLE IF EXISTS d__190710_163547L; DROP TABLE IF EXISTS s__190710_163547L; Название: Re: SQLite запрос Отправлено: Kolobok от Сентябрь 17, 2010, 19:45 Не надо пачкой.
А насчет имен... Представь, что в базе будет десятка два таких таблиц. Ты же повесишься. Название: Re: SQLite запрос Отправлено: Astrologer от Сентябрь 17, 2010, 19:51 Да не два десятка)) Намного больше, они у меня с именем файлов связаны. которые я загружаю. А что такого? У меня имена в QStringList хранятся, мне самому их запоминать не надо.
Просто 10 файлов грузится пару минут, если не больше. А представьте если их 1000? Вот я и хочу транзакцией загружать. Название: Re: SQLite запрос Отправлено: Denjs от Сентябрь 17, 2010, 20:14 Да не два десятка)) Намного больше, они у меня с именем файлов связаны. которые я загружаю. А что такого? У меня имена в QStringList хранятся, мне самому их запоминать не надо. а потом сервер базы данных упал, и те кто восстанавливал программу и данные нашли и придушили программиста ;DПросто 10 файлов грузится пару минут, если не больше. А представьте если их 1000? Вот я и хочу транзакцией загружать. рискуете, уважаемый) :D Просто 10 файлов грузится пару минут, если не больше. А представьте если их 1000? Вот я и хочу транзакцией загружать. И в чем вопрос? вы не знаете где в сети надыбать маны на SQLite? на домашней страничку скулайта (http://www.sqlite.org/docs.html) Поройтесь там в "SQL Syntax" или "Frequently Asked Questions". Я уже говорил выше - Есть там как выполнять запросы пачкой))) я видел, но не уже не помню где. Просто я по одному запросу исполняю за раз. Анализирую входной файл по спец-разделителям и по одному делаю. Зато прекрасно в курсе того какой ИМЕННО запрос у меня сбойнул весь процесс. А вы в этой куче - со скудыми скулайтовскими мессадж-еггогами - не завидую я вам искать источник ошибки... где-то так 8-/ Название: Re: SQLite запрос Отправлено: Kolobok от Сентябрь 17, 2010, 20:45 Транзакция и несколько запросов в один стринг пихать это разные вещи. А насчет ускорения insert-ов - в поиск. Обсуждалось уже.
Название: Re: SQLite запрос Отправлено: Astrologer от Сентябрь 17, 2010, 21:05 Спасибо, поищу.
Код: void openDBF(QString name) Сейчас примерно так, причем таких операций на файл - DROP, CREATE table и INSERT. Как нибудь оптимизировать, чтобы работало быстрее не получится? Кроме пихания стрингов, которое видимо не очень хорошо работает и плохо для отладки. в голову не приходит. Название: Re: SQLite запрос Отправлено: Astrologer от Сентябрь 17, 2010, 21:25 Код: QSqlDatabase dbase = QSqlDatabase::database("dbfEditor"); Быстрее на порядок. Можно считать вопрос закрытым. За исключением - dbase уничтожится при выходе? Всем огромное спасибо. Название: Re: SQLite запрос Отправлено: Пантер от Сентябрь 20, 2010, 15:01 Не уничтожится. Делай db.close ().
Название: Re: SQLite запрос Отправлено: Astrologer от Сентябрь 23, 2010, 16:15 Спасибо.
Название: Re: SQLite запрос Отправлено: Denjs от Сентябрь 27, 2010, 23:02 Транзакция и несколько запросов в один стринг пихать это разные вещи. А насчет ускорения insert-ов - в поиск. Обсуждалось уже. я говорю не про транзакции, а про begin/endhttp://habrahabr.ru/blogs/webdev/42121/ Цитировать sqlite_query($dbhandle, 'BEGIN;'); sqlite_query($dbhandle, 'COMMIT;'); Название: Re: SQLite запрос Отправлено: Kolobok от Сентябрь 28, 2010, 09:13 я говорю не про транзакции, а про begin/end http://habrahabr.ru/blogs/webdev/42121/ Цитировать sqlite_query($dbhandle, 'BEGIN;'); sqlite_query($dbhandle, 'COMMIT;'); Это и есть транзакции.:) Название: Re: SQLite запрос Отправлено: Denjs от Сентябрь 28, 2010, 13:29 Это и есть транзакции.:) :-\гы.... перечитал доки... да, это так. я решил было что раз нет указания типа transaction то и не транзакция... а вот нет) спс . |