![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не работает Locate если есть пустые значения
Пауло Сержио © (2015-05-25 12:10:00)ADOTable.Locate по полю не работает, если есть пустые значения в таблице. Как обойти?
Перебор с доп. условием "не равно NULL" работает, но хотелось бы использовать Locate.
while not Tpers.Eof do begin //проверка на окончание строк
if ADOTable1['Fam']<>NULL then if AnsiUpperCase(ADOTable1['Fam']) = AnsiUpperCase(Edit1.Text) then break;
ADOTable1; //перемещение на следующую строку
end;
Заранее благодарю!
Ega23 (2015-05-26 10:32:00) [1]
> ограничения на поиск записи равной null не существует
Я locate крайний раз использовал году так не помню в каком. Но до 2005 - это стопудово. Помню, что там какие-то параметры есть, кроме перечисления полей-значений, а вот какие - хоть убейте, не помню.
sniknik (2015-05-26 09:57:00) [2]> Locate - вредная штука. Ищет с начала до первой попавшейся записи, плюс имеет всякие ограничения.
даже если и так, ограничения на поиск записи равной null не существует. косяк ТС существует, а ограничение нет... косяк он как суслик, ты его не видишь? и я нет, а он есть.
Пауло Сержио (2015-05-25 13:57:00) [3]Locate - вредная штука. Ищет с начала до первой попавшейся записи, плюс имеет всякие ограничения.
:(((
if ADOTable1.FieldByName['Fam'].IsNull ?
спасибо! :)
Ega23 (2015-05-25 13:23:00) [4]
> только избавляюсь от пустых значений в БД - сразу Locate
> начинает работать.
Locate - вредная штука. Ищет с начала до первой попавшейся записи, плюс имеет всякие ограничения.
junglecat (2015-05-25 13:03:00) [5]if ADOTable1.FieldByName['Fam'].IsNull ?
Пауло Сержио (2015-05-25 12:59:00) [6]1. Во-первых, надо IsNull использовать, ЕМНИП.
компилятор ругается (XE8)
[dcc32 Error] Unit1.pas(164): E2003 Undeclared identifier: 'ISNULL'
2. во-вторых, зачем каждый раз AnsiUpperCase(Edit1.Text) делать? Сразу нельзя?
виноват, исправлюсь :) Но сути не меняет, Locate надо, а он на пустых значениях искать не хочет :(
только избавляюсь от пустых значений в БД - сразу Locate начинает работать.
Ega23 (2015-05-25 12:32:00) [7]1. Во-первых, надо IsNull использовать, ЕМНИП.
2. во-вторых, зачем каждый раз AnsiUpperCase(Edit1.Text) делать? Сразу нельзя?