Обработка Sql скрипта
проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.
сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.
надеюсь все понятно объяснил .
спасибо всем заранее
привет
проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.
сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.
надеюсь все понятно объяснил .
спасибо всем заранее
Да, это проблем-с.
Я так пытался сделать с FireBird
Пришлось внешнюю программу использовать.
Есть вариант :
файл со скриптами делать с разделителями.
И тогда их по очереди вставлять в Query.
Да, это проблем-с.
Я так пытался сделать с FireBird
Пришлось внешнюю программу использовать.
Есть вариант :
файл со скриптами делать с разделителями.
И тогда их по очереди вставлять в Query.
а как это сделать, можешь кусок кода показать
а как это сделать, можешь кусок кода показать
файл :
select * from ... ;
update table set ....;
delete from table ....;
create table .....;
т.е. символ ";" обязателен в конце строки
далее загрузить в какой-нить контейнер типа StringList или ListBox и по одной штуке подсовывать Query.
Говорят в Oracle есть модуль пожирающий скрипты, он и log создаст и парсить ничего не нужно будет. Это дело вкуса.
файл :
select * from ... ;
update table set ....;
delete from table ....;
create table .....;
т.е. символ ";" обязателен в конце строки
далее загрузить в какой-нить контейнер типа StringList или ListBox и по одной штуке подсовывать Query.
Говорят в Oracle есть модуль пожирающий скрипты, он и log создаст и парсить ничего не нужно будет. Это дело вкуса.
над подумать
mainigor, а ты не мог бы показать как ето все описать в билдере, буду очень признателен
:D
над подумать
mainigor, а ты не мог бы показать как ето все описать в билдере, буду очень признателен
:D
// выполненние заранеее заготовленого скрипта
// с использованием компонента TListBox
int __fastcall TUpdateVersion::ExecScript(char* FileSQL, TIBQuery* query)
{
String sql, zpt = ",", srcNameFile, dstNameFile;
srcNameFile = FileSQL; // собрать имя файла
srcNameFile += ".";
srcNameFile += EXT_SQL;
// ListBox1->Items->LoadFromFile(srcNameFile);
// счётчик крутнуть
int num = setCounter();
// копировать в резерв с новым номером
dstNameFile = FileSQL;
dstNameFile += "__[";
dstNameFile += num;
dstNameFile += "].";
dstNameFile += EXT_SQL;
if(CopyFile(srcNameFile.c_str(), dstNameFile.c_str(), false))
{
spawnlp(P_WAIT, "BaseUPD.BAT" , "BaseUPD.BAT" , NULL);
DeleteFile(srcNameFile);
ListBox1->Items->LoadFromFile("log_file.txt");
ListBox1->ItemIndex = ListBox1->Count-1;
return 1;
}
else
{
return 0;
}
}
недостаток этого - нужно визуально анализировать лог, если самостоятельный анализ т.е. разбор скрипта - можно прерывать где хочешь и орать по-русски (с терминами :) )
От самостоятельного я отказался.
Т.к. пользуюсь генераторами скриптов, а там для меня никто разделители ставить не будет :(
привет
проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.
сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.
надеюсь все понятно объяснил .
спасибо всем заранее
Imho, лучше по возможности переходи на ODAC, эти компоненты специально под Oracle заточены и много чего умеют, в том числе выполнять скрипты, и гораздо удобнее билдеровских ADO-компонентов.
Imho, лучше по возможности переходи на ODAC, эти компоненты специально под Oracle заточены и много чего умеют, в том числе выполнять скрипты, и гораздо удобнее билдеровских ADO-компонентов.
Plisteron спасиб за подсказку. не знал о таких компонентах. А не мог бы ты дать ссылочку на литературу про ODAC. буду признателен.
Plisteron спасиб за подсказку. не знал о таких компонентах. А не мог бы ты дать ссылочку на литературу про ODAC. буду признателен.
Вообще-то там всё просто, пишется всё по образу и подобию BDE, а для непонятных мест там есть help. Если будешь с ними работать и возникнуть проблемы, пиши сюда, помогу в меру своих возможностей.