Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Вниз

TpFIBQuery+TThread   Найти похожие ветки 

 
starik30   (2004-05-20 12:34) [0]

Вроде бы простой код выполняется в потоке: (SQL_Statement - процедура для вставки в таблицу вида select * from proc_name (...) и формируется она динамически в потоке)

if SQL_Statement<>"" then
begin
fmMonotor1.trFromSAA.StartTransaction;
try    
 fmMonotor1.qrFromSAA.Close;
 fmMonotor1.qrFromSAA.SQL.Clear;
 fmMonotor1.qrFromSAA.SQL.Add(SQL_Statement);
 fmMonotor1.qrFromSAA.ExecQuery;
 fmMonotor1.trFromSAA.Commit;
except


Ошибка :
Can"t Prepare, because query is empty

Пару записей вставляет потом затыкается и все...

Заранее благодарен
Юра


 
Johnmen ©   (2004-05-20 14:01) [1]

Что-то не то здесь написано...
Чей метод StartTransaction ? Разве TpFIBQuery ???
Что требуется в качестве аргумента методу Add ? По-моему, строка. Но SQL_Statement - процедура... - бред ?
Если select * from , то причем здесь ExecQuery; ?
Если вставки в таблицу , то причем здесь select * from ???
...


 
Курдль ©   (2004-05-20 14:11) [2]

...и еще, - научите меня быть умным!
Зачем выполнять обращения к СУБД в потоке?


 
Vlad ©   (2004-05-20 14:20) [3]


> Курдль ©   (20.05.04 14:11) [2]


> Зачем выполнять обращения к СУБД в потоке?

Причин много, например нужно чтобы основное приложение работало, а не висело, в то время как в фоне будет работать достаточно долгий запрос.
Другой пример - нужна очень быстрая загрузка данных из какого-либо источника на сервер. Несколько потоков будут делать это намного быстрее чем один


 
starik30   (2004-05-20 15:02) [4]

> Johnmen
...
trFromSAA : TpFIBTransaction;
qrFromSAA: TpFIBQuery;
SQL_string : string;

...

Я хотел сказать что значение SQL_string равно select * from proc_name (...) т.е. происходит вызов хранимой процедуры, которая выполняет вставку в таблицу ...

> Курдль программа мониторит директорий находит файлы записывает их в потоке в базу и еще хочется чтобы эта же программа в другом потоке через определенные промежутки времени делала запрос к базе и обратно готовила другие файлы в другой директорий ...

но из-за чего возникает ошибка?..


 
starik30   (2004-05-20 15:09) [5]

Извините за беспокойство - проблема решена - в строке встречался знак вопроса, который TpFIBQuery ... короче отключил ParamCheck и все завертелось ... Как говориться клинишь - сходи покушай рыбу -))


 
Digitman ©   (2004-05-20 15:13) [6]


> процедура для вставки в таблицу вида select * from proc_name
> (...)


это как ?
какая такая "вставка" ?
select-предложение никаких "вставок" не делает, оно предназначено для выборки !


 
starik30   (2004-05-20 15:18) [7]

> Digitman
Есть хранимая процедура на сервере, которая выполняет вставку в таблицу + некоторый контроль и возвращает id вставленной записи ... вызов этой процедуры происходит так :
select * from proc_name (...)


 
Курдль ©   (2004-05-20 15:21) [8]


> вызов этой процедуры происходит так :
> select * from proc_name (...)

Чего только не насмотришься на этом сайте :)


 
Digitman ©   (2004-05-20 15:29) [9]


> Курдль ©   (20.05.04 15:21) [8]


эт точно ! (с) Сухов


 
starik30   (2004-05-20 16:16) [10]

> Курдль

А можно узнать в чем ошибка ?..


 
Vlad ©   (2004-05-20 16:19) [11]


> starik30   (20.05.04 16:16) [10]

Да не в чем, шутят они. Все нормально.


 
Курдль ©   (2004-05-20 16:26) [12]


> А можно узнать в чем ошибка ?..

Да все более-менее. При Вашем "стиле вызова" это скорее будет не процедура, а функция. Если она не призвана возвращать НД, лучше так не делать. К тому же не все СУБД поддерживают такой синтаксис.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.06.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.033 c
1-1086177469
doma
2004-06-02 15:57
2004.06.13
Работа с *.dfm файлами


14-1085545258
Романов Р.В.
2004-05-26 08:20
2004.06.13
Олимпиада по программированию


14-1085504971
Jprs154
2004-05-25 21:09
2004.06.13
Почему в новых домах плохо продаются последние и первые этажи?


14-1085650155
Паниковский
2004-05-27 13:29
2004.06.13
Выход из Интернета кто искал???


3-1084372623
Юрий
2004-05-12 18:37
2004.06.13
Связь приложения и базы данных





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский