Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Обработка Sql скрипта

13K
02 марта 2006 года
lexey
14 / / 27.02.2006
привет


проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.



сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.




надеюсь все понятно объяснил .



спасибо всем заранее
2.1K
02 марта 2006 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by lexey
привет


проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.



сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.




надеюсь все понятно объяснил .




спасибо всем заранее



Да, это проблем-с.
Я так пытался сделать с FireBird
Пришлось внешнюю программу использовать.
Есть вариант :
файл со скриптами делать с разделителями.
И тогда их по очереди вставлять в Query.

13K
02 марта 2006 года
lexey
14 / / 27.02.2006
Цитата:
Originally posted by mainigor
Да, это проблем-с.
Я так пытался сделать с FireBird
Пришлось внешнюю программу использовать.
Есть вариант :
файл со скриптами делать с разделителями.
И тогда их по очереди вставлять в Query.





а как это сделать, можешь кусок кода показать

2.1K
02 марта 2006 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by lexey
а как это сделать, можешь кусок кода показать



файл :
select * from ... ;
update table set ....;
delete from table ....;
create table .....;

т.е. символ ";" обязателен в конце строки

далее загрузить в какой-нить контейнер типа StringList или ListBox и по одной штуке подсовывать Query.

Говорят в Oracle есть модуль пожирающий скрипты, он и log создаст и парсить ничего не нужно будет. Это дело вкуса.

13K
02 марта 2006 года
lexey
14 / / 27.02.2006
Цитата:
Originally posted by mainigor
файл :
select * from ... ;
update table set ....;
delete from table ....;
create table .....;

т.е. символ ";" обязателен в конце строки

далее загрузить в какой-нить контейнер типа StringList или ListBox и по одной штуке подсовывать Query.

Говорят в Oracle есть модуль пожирающий скрипты, он и log создаст и парсить ничего не нужно будет. Это дело вкуса.




над подумать

mainigor, а ты не мог бы показать как ето все описать в билдере, буду очень признателен
:D

2.1K
02 марта 2006 года
mainigor
151 / / 21.10.2005
Цитата:
Originally posted by lexey
над подумать

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;
}
}

недостаток этого - нужно визуально анализировать лог, если самостоятельный анализ т.е. разбор скрипта - можно прерывать где хочешь и орать по-русски (с терминами :) )

От самостоятельного я отказался.
Т.к. пользуюсь генераторами скриптов, а там для меня никто разделители ставить не будет :(

13K
02 марта 2006 года
lexey
14 / / 27.02.2006
mainigor спасиб
294
03 марта 2006 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by lexey
привет

проблема такая: над сделать так, чтобы программа могла обрабатывать SQL-скрипт. т.е. выбираем файл, в котором есть несколько sql запросов к БД Oracle, прога обрабатывает их и выдает сообщение типа все выполнено.

сам пытался сделать, но получилось тока для одного запроса, а на остальные ругается. использовал ADO.

надеюсь все понятно объяснил .

спасибо всем заранее


Imho, лучше по возможности переходи на ODAC, эти компоненты специально под Oracle заточены и много чего умеют, в том числе выполнять скрипты, и гораздо удобнее билдеровских ADO-компонентов.

13K
03 марта 2006 года
lexey
14 / / 27.02.2006
Цитата:
Originally posted by Plisteron
Imho, лучше по возможности переходи на ODAC, эти компоненты специально под Oracle заточены и много чего умеют, в том числе выполнять скрипты, и гораздо удобнее билдеровских ADO-компонентов.




Plisteron спасиб за подсказку. не знал о таких компонентах. А не мог бы ты дать ссылочку на литературу про ODAC. буду признателен.

294
05 марта 2006 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by lexey
Plisteron спасиб за подсказку. не знал о таких компонентах. А не мог бы ты дать ссылочку на литературу про ODAC. буду признателен.


Вообще-то там всё просто, пишется всё по образу и подобию BDE, а для непонятных мест там есть help. Если будешь с ними работать и возникнуть проблемы, пиши сюда, помогу в меру своих возможностей.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог