![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Применение функции locate для поиска записей по полю memo [D6, Access]
Ann Boo © (2004-03-05 10:54:00)Уважаемые мастера, подскажите, пожалуйста, почему не работает функция Locate для полей Memo (поиск с частичным совпадением). Выдается ошибка о невозможности выполнения запроса. Использую БД Access, подключаюсь с помощью ADO.
ffield:='SecondNames'; //имя memo-поля
fvalue:=Form1.Edit1.Text;
opts:=[loCaseInsensitive,loPartialKey];
if not Form1.ADOTable1.Locate(ffield, fvalue, opts) then
ShowMessage('запись не найдена');
sniknik (2004-03-05 11:11:00) [1]для Access легко можно сделать дополнительный запрос
'SELECT ID FROM Table WHERE SecondNames LIKE ''%'+Form1.Edit1.Text+'%''';
что даст ID (в данном случае идентификатор, ключь) всех совпадений, по нему локейт будет работать, и не нужно тянуть на локаль все мемо поля для обработки, а только совпадающие.
p.s. в очередной 101 раз ;о), не используйте ADOTable, для ADO в нем больше недостатков чем выигрыша от "привычности" использования.
Anatoly Podgoretsky (2004-03-05 11:04:00) [2]Locate только для поиска по полям с фиксировной длиной и простого типа.
Соловьев (2004-03-05 11:00:00) [3]а если написать нормально?
if not Form1.ADOTable1.Locate('SecondNames', Form1.Edit1.Text, [loCaseInsensitive,loPartialKey]) then
ShowMessage('запись не найдена')
Кщд (2004-03-05 11:00:00) [4]"почему не работает функция Locate для полей Memo "
по определению :)