Форум: "Базы";
Текущий архив: 2003.05.22;
Скачать: [xml.tar.bz2];
ВнизОрганизация цикла перебора записей в таблице 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c