Вниз
Скачать: CL | DM;

Организация цикла перебора записей в таблице TIBTable   Найти похожие ветки 

 
Andrio ©   (2003-05-04 13:15) [0]

Не пойму почему не работает перебор всех записей в цикле?
Имеется таблица TIBTable. Цикл такой:

if UslugiTable.FindFirst then
begin
REPEAT

// ******************************

UNTIL not UslugiTable.FindNext;

Во-первых: уже при первом условии он выдает false и не доходит до цикла вообще.
Во-вторых: если первую строку убрать и переходить к циклу сразу без условия то выполняются операции над текущей строкой а затем цикл прекращается. Т.е. FindNext выдает false хотя:

RecordCount 3
RecNo 1

Но

IsEmpty Inaccessible value
FindFirst Inaccessible value (поступает как false)

При попытке присвоить любое из вышеперечисленных значений переменной, в окне WatchList пишет
одно и тоже для всего:

"Variable "NNN" inaccessible here due to optimization"

Может баг в Делфе какой может еще че, помогите pleeeeese!!!! :(


 
MsGuns ©   (2003-05-04 13:31) [1]

Если надо простое сканирование (перебор) ВСЕХ записей курсора НД, то причем здесь метод FindFirst/FindNext ? Достаточно цикла while not IBTable1.Eof do

Хотя правильнее так:

var
bm: TBookMark;
begin
Screen/Cursor := crHourGlass; // Повесили часики
Grid1.DataSource.Enambe := false; // Отключили грид
with IBTable1 do
begin
bm := GetBookMark; // Запомнили текущую запись
First; // К началу НД
while not EOF do
begin // Сканирование НД
<Какие-то действия с очередной записью НД
Next;
end;
GoToBookMark(bm); // Вернулись в исх.запись
FreeBookMark(bm); // Убрали "мусор"
end;
Grid1.DataSource.Enambe := true; // Включить грид
Screen.Cursor := crDefault; // Вернули курсору норм.вид
end;


 
Zacho ©   (2003-05-04 13:39) [2]


> MsGuns © (04.05.03 13:31)

Небольшое замечание. Работать с bookmark"ами можно гораздо проще.
var
bm:TBookmarkStr;
...
bm:=Bookmark;
...
Bookmark:=bm;


А всякие TBookmark, GetBookmark, FreeBookmark - это имхо атавизм.


 
MsGuns ©   (2003-05-04 13:50) [3]

>Zacho © (04.05.03 13:39)
>А всякие TBookmark, GetBookmark, FreeBookmark - это имхо атавизм

Ну, это дело вкуса. Как старый ассемблерщик, насмотревшийся вдоволь на "оптимизированные" коды, стараюсь писать максимально ясно, пусть даже и в ущерб "стильности" и "крутизне" кода.

Хотя в данном случае один фиг, конечно. Привычка-с ;))



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
1-70330
Yuraz
2003-05-08 19:31
2003.05.22
Как раскрасить опр. ячейку StringGrid?


1-70363
FZ*XupypG
2003-05-10 04:08
2003.05.22
Сохранение типа TColor в текстовый файл и чтение его оттуда


1-70386
P@SHA
2003-05-10 19:34
2003.05.22
Открытие текстового файла своей программой


14-70449
Злодей
2003-05-02 23:36
2003.05.22
TNMSMTP


7-70543
ДмитрийВ
2003-03-24 23:38
2003.05.22
9й бит в rs-232 как проверять?




   Наверх