Russian Qt Forum

Qt => Базы данных => Тема начата: cya-st от Сентябрь 17, 2009, 21:38



Название: Запрос из файла
Отправлено: cya-st от Сентябрь 17, 2009, 21:38
Подскажите пожалуйста как выполнить SQL-команды из файла? У меня из файла должны создаватся две таблици. Я считываю содержимое файла в переменную типа QString и вызываю метод exec(srSQL); класса QSqlQuery, но таблици не создаются. В чем может быть трабла?


Название: Re: Запрос из файла
Отправлено: developer от Сентябрь 17, 2009, 23:36
Давай свой файл из sql. В нем все может и быть. Порядок создания таблиц может быть неверным.


Название: Re: Запрос из файла
Отправлено: cya-st от Сентябрь 18, 2009, 11:12
Из командной строки все работает
Код
DOS
@C:\PG\bin\psql.exe -U user -d DBNAME -f d:\DIR1\sql\cmm.sql
, а в проге нет.


Название: Re: Запрос из файла
Отправлено: developer от Сентябрь 18, 2009, 11:14
qDebug() << QSqlQuery.lastError().text();
qDebug() <<  QSqlQuery.lastQuery();   - сделай так после exec(srSQL). И увидиш свою ошибку


Название: Re: Запрос из файла
Отправлено: lit-uriy от Сентябрь 18, 2009, 11:52
cya-st, могу пример проги дать. Писал некоторое время назад, уже подзабыл как устроена :)
Идея:
есть много БДшек SQLite, надо в них манипуляции с данными выполнять. Скармливаем программе скрипт, и она его выполняет.
Особенность:
в SQLite можно временные таблицы создавать (которые автоматически удяляются при отключении от БД). В программу жёстко зашито имя "output", если программа в конце своей работы обнаруживает такую таблицу (она может быть создана скриптом), то печатает её содержимое в стандартный вывод.

Пример запуска программы:
Код
Bash
sp my.bomdb my.sql > my.log

Во вложении код и пример скрипта (для справки)


Название: Re: Запрос из файла
Отправлено: cya-st от Сентябрь 18, 2009, 13:01
Разобрался, спасибо за пример.