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

как незаметно пройтись по записям таблицы или запроса

Добавлено: 18 фев 2006, 22:03
Viktor Zull
Нужно пройтись по всем записям в ADOQuery.
Пишем так:

ADOQuery1.First;
while not ADOQuery1.Eof do begin
// Какие-то операторы
ADoQuery1.Next
end;

При этом по DBGrid, который связан с ADQuery двигается курсор.
Можно ли пройтись по всем записям запроса, но незаметно для пользователя, чтобы курсор в DBGrid не перемщался.

Добавлено: 19 фев 2006, 11:01
YurikGL
1) связать с гридом другй Query
2) открыть запрос, по которому нужно пробежаться в другом Query
3) на время "пробежки" Grid.datasource:=''

Добавлено: 19 фев 2006, 15:46
Viktor Zull
"Открыть запрос" - то есть выполнить его чтоли ещё раз? Это не подходит, запрос один то раз выполняется долго, так что выполнить его ещё раз займёт много времени.

Или нужно сохранить результаты первого запроса в файл и открыть их во втором? Это тоже не подходит.

Добавлено: 20 фев 2006, 14:18
Игорь Акопян
Viktor Zull, всё проще:

Код: Выделить всё

var
  bm: string;
...
bm :=  ADOQuery1.Bookmark; // запомнить тек. поз.
ADOQuery1.DisableControls;
try
  ADOQuery1.First; 
  while not ADOQuery1.Eof do 
  begin 
    // Какие-то операторы 
    ADoQuery1.Next 
  end; 
finally
  ADOQuery1.Bookmark := bm; // восстановить тек. поз.
  ADOQuery1.EnableControls;
end;

читаем справку по представленным методам ;)