![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;