Название: обновление БД Отправлено: crossly от Апрель 22, 2008, 20:24 тут пришла мысля.... ;D но не какне могу вкурить с чего начать курить :)... есть приложение (Qt 4.3.4) БД (firebird 2.0) и есть скрипт который производит изменения в БД... задача следующая.. выполнить этот скрипт из приложения.. подскажите куда копать плиз...
Название: Re: обновление БД Отправлено: Sergeich от Апрель 22, 2008, 22:10 Если это SQL-скрипт читай его построчно и выполняй QSqlQuery, в чем проблема то?
Название: Re: обновление БД Отправлено: Вячеслав от Апрель 22, 2008, 22:10 Скрипт - sql ?
1) вариант чего-нибудь типа antlr в зубы и выполнять скрипт самому по запросам ... Даже без ant'a можно обойтись - скрипт обычно тупой - можно на уровне QString'a\QRegexp'a поиграться 2) в лоб QProcess + isql и типа опа ;) Но 1) безопастность - isql захочет login/pass 2) разбор полетов - возможная ругань isql'я ..... Хотя я в данном случае предпочитаю создавать скрипт на питоне сразу с контролем ошибок ;) Название: Re: обновление БД Отправлено: Вячеслав от Апрель 22, 2008, 22:11 Если это SQL-скрипт читай его построчно и выполняй QSqlQuery, в чем проблема то? alter table / drop index /create index оно сожрет в качестве строки ?PS интереса ради - сам не пробывал Название: Re: обновление БД Отправлено: Sergeich от Апрель 22, 2008, 22:14 Если это SQL-скрипт читай его построчно и выполняй QSqlQuery, в чем проблема то? alter table / drop index /create index оно сожрет в качестве строки ?PS интереса ради - сам не пробывал Название: Re: обновление БД Отправлено: Вячеслав от Апрель 22, 2008, 22:24 Ясно ;) Надо будет поглядеть на трезвую голову ;) Чего-то мне помниться что в начале 4 ветки были грабли с ДМЛ .... Но наверное их уже поправили ;)
Название: Re: обновление БД Отправлено: Tonal от Апрель 23, 2008, 07:22 Есть ещё вариант дла винды: IBEScript.dll или IBEScript.exe от IBExpert-а :-)
Название: Re: обновление БД Отправлено: crossly от Апрель 23, 2008, 11:36 мдя... лично мне кроме разбора скрипта и выполнения по частям тоже ничего в голову не пришло... спасибо за ответы... ;)
Название: Re: обновление БД Отправлено: Tonal от Апрель 23, 2008, 13:33 Если в скрипте не могут встречаться триггеры и хранимки, то разбор довольно простой: режешь по ;.
Правда дополнительной обработки требуют строковые константы, ну да это тоже побеждается довольно просто. :) Название: Re: обновление БД Отправлено: pastor от Апрель 23, 2008, 13:44 По этому поводу был suggestion на Task Tracker #129497 (http://trolltech.com/developer/task-tracker/index_html?method=entry&id=129497)
Но, имхо, это больше походит на отмазку тролей ))) Название: Re: обновление БД Отправлено: crossly от Апрель 23, 2008, 16:14 действительно отмака..,:) а по поводу хранимых и тригеров тоже не вижу проблемы... главное отлавливать втексте set term и менять разделитель строки....:)
Название: Re: обновление БД Отправлено: White Owl от Май 09, 2008, 17:05 По этому поводу был suggestion на Task Tracker #129497 (http://trolltech.com/developer/task-tracker/index_html?method=entry&id=129497) Это не отмазка, это скорее ответ на глупый вопрос.Но, имхо, это больше походит на отмазку тролей ))) Тут все зависит от сервера. В одних случаях скрипт состоящий из нескольких команд нужно резать на отдельные команды и посылать их по отдельности. Например: Код: use mydb А вот такой скрипт резать на отдельные команды можно, но не обязательно: Код: insert into t values(...) Код: begin atomic Отсюда и вывод: встраивать в QSqlQuery автоматическую резалку строки на команды - нельзя. |