Страница 1 из 1

-804 ошибка Firebird

Добавлено: 20 дек 2004, 10:39
Гость
Нарисовал небольшую базульку на Firebird. Делаю к ней кучу запросов. Всё это дело вроде работает но иногда возникает ошибка -804
[20.12.2004 10:49:41]{ERROR}Loading XAS operations cache IBMessage:Dynamic SQL Error.
SQL error code = -804.
SQLDA missing or incorrect version, or incorrect number/type of variables.
SQLMessage:An error was found in the application program input parameters for the SQL statement.
[20.12.2004 10:50:04]{ERROR}Loading XAS operations cache IBMessage:Error reading data from the connection.
SQLMessage:Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.

При чём возникает она если сольно увеличить нагрузку (более 15 запросов в секунду).

Ошибка возникает при вызове tmpQuery->ExecQuery();

Кто-нибудь с таким сталкивался?

Добавлено: 20 дек 2004, 10:44
kdv
обычно такое возникает в IBStoredProc. см. www.ibase.ru/devinfo/ibstp.htm

Добавлено: 20 дек 2004, 11:17
Гость
Спасибо за ответ.
Я пользуюсь TpFIBQuery
версия сервера Firebird 1.5.1.4481
версия gds32.dll 1.5.1.4481
Т.е. вероятно я должен быть лишён таких проблем ... Может кто-нибудь подскажет что можно сделать что бы этого избежать.

А сообщения об ошибках действительно иногда бывают разные к примеру иногда мне выдаёт типа "Access violation in gds32.dll Приложение обратилось по адресу 00000000 и будет закрыто."

Добавлено: 20 дек 2004, 12:06
kdv
"более 15 запросов в секунду" - это откуда? ты небось из multithread-приложения запросы дергаешь, не соблюдая правил. см. faq.

Добавлено: 20 дек 2004, 12:48
Гость
Спасибо. Щас попробую. но в начале уточню.
Т.е. правильно ли я понял, что для каждой транзакции и для каждого запроса необходимо создавать свой экземпляр базы данных (ну в смысле надо для каждой нити TpFIBDatabase, TpFIBTransaction, TpFIBQuery)?

Добавлено: 20 дек 2004, 13:18
kdv
правильно. об этом и талдычит FAQ уже лет шесть-семь.

Добавлено: 20 дек 2004, 13:42
Гость
Огромное спасибо. Щас на 25 транзакциях в секунду мой комп затыкается гы-гы.
Все работает. Я просто раньше в целях экономии проводил все транзакции через один компонент TpFIBDatabase.
После прочтения FAQ сделал их столько же сколько и транзакций с запросами и никаких ошибок.
Ещё раз спасибо.

Добавлено: 21 дек 2004, 08:38
getman
Anonymous писал(а):Огромное спасибо. Щас на 25 транзакциях в секунду мой комп затыкается гы-гы.
Все работает. Я просто раньше в целях экономии проводил все транзакции через один компонент TpFIBDatabase.
После прочтения FAQ сделал их столько же сколько и транзакций с запросами и никаких ошибок.
Ещё раз спасибо.
Меня терзают смутные сомнения, вот если у меня 20 IBQUERY, естественно вызываются не сразу, а через разные формы, то что мне надо 20 IBTRANSACTION и столько же IBDATABASE? :oops: Или это имеется в виду работа через THread?

Добавлено: 21 дек 2004, 09:54
kdv
getman, не суетись. кто тебя вообще заставляет на каждый IBQuery пихать IBTransaction, пусть даже и при работе с thread???