Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.22;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.025 c
4-70574
Smok_er
2003-03-21 13:29
2003.05.22
Вопрос про system tray icon


3-70115
vick_pvm
2003-04-28 16:49
2003.05.22
BDE почему-то держит директорию после закрытия таблицы.


1-70351
Tatiana
2003-05-08 10:13
2003.05.22
Chto znachit: is not a valid floating point value .


14-70450
sorry
2003-04-30 20:17
2003.05.22
Атипичная пневмония ?! Что скрывают ?!


1-70281
exo
2003-05-12 14:24
2003.05.22
компилятор ругается