Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Locate то работает, то выдает ошибку. [D5, access]


Донской ©   (2004-08-27 19:17:00) 

День добрый!

У меня два набора данных, подключенных к базе Access
В разных местах я использую Locate для того, чтобы определить, есть ли запись со интересующим меня значением в интересующем поле.

В одном месте все работает,
а в другом - выдает ошибку, если запись не найдена. НИкак не могу найти закономерность, да и в хелпе написано, что если записи нет, то функция вернет false,

Ничего не понимаю....

Вот рабочий код:


   s:='_NEW_';
     k:=0;
     while locate('Name',s,[]) do
     begin
        k:=k+1;
        s:='_NEW_'+inttostr(k);
     end;


а вот нерабочий (значение переменной с изменяется в цикле, остальные переменные не важны в данном случае)

if SetBaseTermoList.locate('TermoNum',c,[]);then
begin
  with serieses[c] do
  begin
     ser.AddXY(Measuretime,codehi*256+codelo);
  end;
end;


и вот сообщение об ошибке
... SetBaseTermoList: Record not found ...


Донской   (2004-08-27 19:30:00) [1]

аааааааааааааааааа!!!!!!!
кажется это из-за того, что во втором случае набор был фильтрованный.
Вот е-мое.

Всем привет!!


Ega23   (2004-08-27 19:24:00) [2]

1. зачем ; после SetBaseTermoList.locate('TermoNum',c,[]) ?
2. Попробуй

if (SetBaseTermoList.locate('TermoNum',c,[])) and
   (not SetBaseTermoList.IsEmpty) then
begin
 with serieses[c] do
 begin
    ser.AddXY(Measuretime,codehi*256+codelo);
 end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо