![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не выключается AutoCalcFields [D6, IB6.x]
AVP_opck © (2003-12-22 09:10:00)
Есть у меня вот такая процедурка. Должна сохранять результат запроса в текстовый файл.
begin
if SaveDialog1.Execute then
begin
file_name:=SaveDialog1.FileName;
assignfile(f,file_name);
rewrite(f);
with form1 do
begin
ibq3.AutoCalcFields:=false;
ibq3.First;
while ibq3.Eof do
begin
st:="";
st:=ibq3.Fields[0].AsString+";";
st:=st+ibq3.Fields[1].AsString +";";
st:=st+ibq3.Fields[5].AsString +";";
st:=st+ibq3.Fields[6].AsString +";";
st:=st+ibq3.Fields[7].AsString +";";
st:=st+ibq3.Fields[8].AsString +";";
st:=st+ibq3.Fields[9].AsString +";";
st:=st+ibq3.Fields[10].AsString +";";
st:=st+ibq3.Fields[11].AsString +";";
writeln(f,st);
ibq3.Next;
end;
ibq3.AutoCalcFields:=true;
end;
closefile(f);
end;
end;
НО!!!
После команды ibq3.First;
происходит авторасчет полей
процедуркой
tt.Date:=ibq3.fieldByName("d").asinteger;
tt.Time:=ibq3.fieldbyName("t").AsInteger;
ibq3.Fields[0].Value:=Datetostr(TimeStamptoDatetime(tt));
ibq3.Fields[1].Value:=timetostr(TimeStamptoDatetime(tt));
и затем указатель перемещается на последнюю запись в результате чего ibq3.Eof сразу дает True
И цикл While do не выполняется.
В чем дело как выйти из ситуации.
AVP_opck (2003-12-22 10:26:00) [1]
ага точно ошибочка есть. Not пропустил.
мать его так
Johnmen (2003-12-22 10:15:00) [2]
Самое интересное, что при данных условиях (ibq3.Eof сразу дает True) цикл бесконечен :)
И ещё. Перемещение на последнюю запись никогда не"ibq3.Eof сразу дает True".
AVP_opck (2003-12-22 09:15:00) [3]
ibq3 - ibquery3
Самое интересное вроде и авторасчет я выключил а он один фиг делает. (((