Очень часто
при добавлении записи в базу данных при работе с компонентом ADOTable необходимо
проверить, а вдруг такая запись уже есть. Для проверки, как правило, используются два метода для
поиска данных: ADOTable.Locate и ADOTable.Lookup. Данные методы ищут запись, удовлетворяющую
заданным условиям.
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean; virtual; function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant; virtual;
Разница между
ними в том, что функция Locate при
поиске записи позиционирует курсор на найденную запись, а Lookup не делает этого. Описывать, как работают данные методы
поиска, я не буду т.к. про это написано достаточно много. Дело в том, что при
вызове любого из этих методов, автоматически вызывается метод post
и ваша проверяемая запись добавляется в базу данных или возникает ошибка. Самый
простой способ, чтобы это обойти поместить на форму еще один компонент ADOTable, подключить к нему эту же таблицу базы
данных и осуществлять поиск уже по ней.
Нравится
|