Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.006 c
3-70148
anton2v
2003-04-22 15:16
2003.05.22
Невозможно удаление записей из указанных таблиц


1-70214
anbezr
2003-05-08 10:21
2003.05.22
Получить высоту одной строчки в TEdit


14-70472
Yorick
2003-04-18 18:20
2003.05.22
Модули DirectShow,...


9-70081
Crazy Max
2002-12-14 17:34
2003.05.22
2-х оконное приложение на OpenGl


6-70419
pav_oleg
2003-03-24 03:01
2003.05.22
Доступ к IE History





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский