Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.12;
Скачать: CL | DM;

Вниз

Непонятная ошибка   Найти похожие ветки 

 
Alibaba ©   (2002-11-22 16:44) [0]

Всем привет!

Мастера, подскажите, плиз.

Програма делает следующее:
1. Берет текстовый файл, в котором SQL-запрос.
2. qr.SQL.Clear;
qr.SQL.Add(s); //(где s-SQL-запрос)
3. qr.Open или qr.ExecSql в зависимости от ситуации.

Все. Это делается в цикле. Есть несколько файлов с SQL,
которые запускаются.

ВСЕ РАБОТАЛО!!!

Теперь стало появляться сообщение :
EDBEngineError: General SQL Error.
ct_cursor(CLOSE): user api layer: external error: A cursor must be opened before this command type can be initialized.


 
Reindeer Moss Eater   (2002-11-22 16:47) [1]

Ошибка в 17 строке файла с SQL запросом на котором получаем ошибку


 
Alibaba ©   (2002-11-22 16:51) [2]

>Reindeer Moss Eater
Не угадал. SQL имеет всего 12 строк.


 
exit   (2002-11-22 17:24) [3]

Если в Query написать что-то типа:

SELECT * FROM MY_TABLE

а потом сказать Query.ExecSQL - будет ругань на курсор


 
Alibaba ©   (2002-11-22 17:31) [4]

> exit
Здесь ты прав.

Еще варианты есть?


 
Anatoly Podgoretsky ©   (2002-11-22 17:33) [5]

Есть, последнии 5 строк съед сервер


 
exit   (2002-11-22 17:35) [6]

Ну, если внимательно присмотреться к ошибке, начинает казаться, что курсор то как раз не открыт. Но вот что-то или кто-то пытается его закрыть. Он ругается.


 
Alibaba ©   (2002-11-22 17:36) [7]

Анатолий Батькович,
Вы под вечер решили развеяться и пошутить? :)


 
Alibaba ©   (2002-11-22 17:42) [8]

Мне знакомый (тоже пишет на Дельфи) говорит что у него такая ошибка иногда возникает и через время пропадает??????

Есть мнение что это глюк Дельфи.

Еще раз опишу свои проверки:

1. SQL - запросы правильные.(я их отдельно выполняю в SQL
Advantager - всё работает)
2. Где Open где ExecSQL - проверил.
3. qr.SQL всегда сначала чищу а потом загружаю новый.

Что еще проверить?



 
asafr ©   (2002-11-22 17:50) [9]

with Query1 do begin
try // try..finally..end примени
if Active then Close; //Обрати внимание
SQL.Clear;
SQL.Add(s);
Open/ExecSQL;
finally
Close;
end;
end;


 
Alibaba ©   (2002-11-22 18:03) [10]

>asafr ©
Конечно-же я закрываю qr.
Ведь работа происходит в цикле

> Alibaba © (22.11.02 16:44)
... Это делается в цикле ...


Без закрытия невозможно было бы осуществлять поочередное выполнение запросов.


 
ЮЮ ©   (2002-11-23 08:25) [11]

>Без закрытия невозможно было бы осуществлять поочередное выполнение запросов

Изменения св-ва SQL и так закроет запрос, а вот что получится, если пытаться закрыть запрос, для которого был выполнен ExecSQL?
Возможно у "A cursor must be opened before this command type can be initialized" оттуда ноги и растут :-)


 
Alibaba ©   (2002-11-25 12:17) [12]

>ЮЮ ©

Понимаеш, все работало!
И ExecSQL и Open!!!

Что случилось - НЕПОЙМУ. :(((



 
ЮЮ ©   (2002-11-25 12:57) [13]

Что случилось, совершенно ясно:
ct_cursor(CLOSE): user api layer: external error: A cursor must be opened before this command type can be initialized

Курсор должен быть предварительно открыт для выполнения команды закрыть.

Если раньше ошибка не выскакивала, значит раньше кому-то было наплевать на то закрыт или открыт закрываемый курсор. Теперь же тебе прийдется придерживаться мысли, что это "нехорошо", т.е. в сложившихся условиях делай не DataSet.Сlose, a if DataSet.Active then DataSet.Close


 
asafr ©   (2002-11-25 13:00) [14]

Проведи эксперимент: повтори тоже самое через ADO - появится ошибка или нет? Если да - то какая?


 
BorisUK ©   (2002-11-25 14:20) [15]

Вспомни что в базе последний раз менял?
Когда все работало и вдруг перестало - может надо в базе данных покопаться?
Но это ИМХО.



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

Текущий архив: 2002.12.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.016 c
8-36299
wowik
2002-08-25 19:16
2002.12.12
Bass.dll


1-36082
greenrul
2002-11-27 20:49
2002.12.12
SKINZ/Скины/Шкурки.


14-36339
Шишкин Илья
2002-11-16 22:48
2002.12.12
ZoneAlarm Pro


3-36019
mikl2002
2002-11-22 07:07
2002.12.12
Преобразование типов полей в IB6


14-36405
123000
2002-11-17 17:50
2002.12.12
Компоненты из RegCleaner