Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2008, 11:01   #1
azat
Пользователь
 
Регистрация: 26.11.2007
Сообщений: 56
По умолчанию ADOQueryGivBy.FindFirst

Имеется проект, в нем есть кнопка выполняющая:

Код:
ADOQueryGivBy.SQL.Text:='SELECT * FROM TGivBy ORDER BY Name';
ADOQueryGivBy.Open;
if ADOQueryGivBy.FindFirst then begin
  repeat
    ...
  until not ADOQueryGivBy.FindNext;
end;
но при выполнении на 3-ей строке выдаёт ошибку:
"Project Project.exe raised exception class EOleException with message 'BOF или УEOF' имеет значение True, либо текущая запись удалена. Для выполнения операции требуется текущая запись. "

создал новый проект с той же кнопкой и тем же кодом - всё работает нормально. Странно. В моем проекте это работать не хочет. Интересно почему? вродебы и там и там свойства ADOQuery одинаковы и не меняются при выполении, но в моем проекте этот код не пашет.
У кого какие дагадки имеются?.
Спасибо.
azat вне форума Ответить с цитированием
Старый 25.01.2008, 11:38   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Фильтры не определены? Ато помнится мне что FindFirst фильтры Уважает.
И кстати вместо FindFirst попробуй просто First, так на всякий случай...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.01.2008, 11:45   #3
azat
Пользователь
 
Регистрация: 26.11.2007
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Фильтры не определены? Ато помнится мне что FindFirst фильтры Уважает.
И кстати вместо FindFirst попробуй просто First, так на всякий случай...
фильтров нет.

пробовал
ADOQueryGivBy.SQL.Text:='SELECT * FROM TGivBy ORDER BY Name';
ADOQueryGivBy.Open;
ADOQueryGivBy.First;
if not ADOQueryGivBy.isEmpty then begin
repeat
...
until not ADOQueryGivBy.FindNext;
end;
такая же ошибка, но на операторе FindNext.
Но фишка в том, что тот ж е код в новом проекте работает нормально (((.
azat вне форума Ответить с цитированием
Старый 25.01.2008, 12:04   #4
2face
Пользователь
 
Регистрация: 23.05.2007
Сообщений: 24
По умолчанию

вместо if not ADOQueryGivBy.isEmpty then begin
надо
while not ADOQueryGivBy.eof do
begin
...
ADOQueryGivBy.next;
end;
2face вне форума Ответить с цитированием
Старый 25.01.2008, 13:07   #5
azat
Пользователь
 
Регистрация: 26.11.2007
Сообщений: 56
По умолчанию

Цитата:
Сообщение от 2face Посмотреть сообщение
вместо if not ADOQueryGivBy.isEmpty then begin
надо
while not ADOQueryGivBy.eof do
begin
...
ADOQueryGivBy.next;
end;
Спасибо. вроде работает )). но надо добавить еще наверное и ADOQueryGivBy.First;
azat вне форума Ответить с цитированием
Старый 25.01.2008, 13:10   #6
2face
Пользователь
 
Регистрация: 23.05.2007
Сообщений: 24
По умолчанию

Цитата:
Спасибо. вроде работает )). но надо добавить еще наверное и ADOQueryGivBy.First;
Не наверное, а точно ))
2face вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
findfirst aesoem Общие вопросы Delphi 7 14.04.2008 17:06
FindFirst matus Помощь студентам 2 21.02.2008 19:34
Проблема с FindFirst, как указать меняющийся путь? _SacreD_ Общие вопросы Delphi 12 26.12.2007 16:14