![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Похоже ошибка в ADOTable [D7, Access]
Alfred © (2006-05-06 13:15:00)ADOTable не возвращает false при использовании Locate, если запись не найдена. Всегда - True. Может быть кто-нибудь сталкивался с этим.
evvcom (2006-05-06 15:41:00) [1]
> ADOTableStreetNames.RecNo := DBComboBox1.ItemIndex + 1;
DBComboBox1 это уже сам и без тебя сделает, причем не через ненадежный RecNo
MsGuns (2006-05-06 14:34:00) [2]А зачем еще и две переменные-то ?
Sergey13 (2006-05-06 14:31:00) [3]2[3] Alfred (06.05.06 14:26)
Не понял я твоего кода. Зачем что-то вообще искать, если старое название (как я понял) лежит рядом с новым в одной записи?
Ega23 (2006-05-06 14:29:00) [4]Так ты по одному и тому же полю ищешь. Конечно ты его всегда найдёшь.
Alfred (2006-05-06 14:26:00) [5]Вот код. В таблице 2 поля: Name (текущее наименование улицы) и Name_old
(старое название). Используются 2 DBComboBox'а. Для новых и старых названий. Выбираем в левом новое название - в правом отображается старое название. Для удобства в ADOTable старых названий установлен фильтр на пустое поле.
procedure TMainForm.DBComboBox1Change(Sender: TObject);
var
s: String;
ff: Boolean;
begin
ADOTableStreetNames.RecNo := DBComboBox1.ItemIndex + 1;
s := ADOTableStreetNames.FieldByName('Name_old').AsString;
ff := ADOTableStreetNames_old.Locate('Name_old', s, []);
if ff = false then
DBComboBox2.Text := '';
end;
MsGuns (2006-05-06 13:23:00) [6]Я сталкивался. Например в случаях, когда думаешь, что ищешь по полю 1, а параметром функции указано поле 2, причем его значение совпадает с заданным образцом.
Sergey13 (2006-05-06 13:17:00) [7]>Может быть кто-нибудь сталкивался с этим.
Может код опубликуешь?