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

Вниз

Рекурсивная функция   Найти похожие ветки 

 
Вованчик ©   (2004-02-24 15:52) [0]

Здравствуйте.

Написал рекурсивную функцию:

function GetSQL(var N: String): String;
var Query: TIBQuery;
Str: String;
begin
Query := TIBQuery.Create(Self);
Query.DataBaseName := Data.DB;
Query.Transaction := Data.Transaction;
Query.SQL.Text := ‘SELECT N FROM Vid_Calculation_Table’ + fos_Number_Otdel +
‘WHERE N_Vid = ’ + N;
Query.Open;
Result := ‘’;
While not Query.eof do
begin
Str := Query.FieldByName(‘N’).asString;
Result := Result + ‘ OR N_Vid = ’ + Str + GetSQL(Str);
Query.Next;
end;
Query.Close;
Query.Free;
end;

но она выдает эксепшин "не могу выполнить на закрытом датасете" на строке Query.Next, убираю
Query.Close;
Query.Free;
все работает без проблем, но тогда экземпляров может создаться очень много...

В чем может быть проблема? По идее то должен закрыться соответсвующий экземляр Query и функция продолжить работу, но все почему то не так ... Помогите разобраться ...

Спасибо.


 
jack128 ©   (2004-02-24 16:02) [1]

не может быть..Ты же открыл куери. Это точно реальный код?? может ты случайно в рабочем коде Query.Close в цикл поставил??


 
Вованчик ©   (2004-02-24 16:06) [2]

может может, самый реальный код :(
> может ты случайно в рабочем коде Query.Close в цикл поставил??
если б так :)



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-12483
TUser
2004-02-13 14:05
2004.03.05
технологии


7-12556
Boroda Oleg
2003-12-05 12:10
2004.03.05
Как запретить windows переход в полноэкранный режим?


4-12577
unnamed777
2003-12-27 05:29
2004.03.05
Прерывание сообщения


6-12464
Незнающий
2003-12-30 19:46
2004.03.05
броадкаст датаграммы


1-12327
dendy
2004-02-22 22:50
2004.03.05
При изменении размера формы...