С помощью этого кода осуществляется поиск в БД по фамилии. Проблем здесь не возникает.
begin dbgrid3.Visible:=true;
if Length(Edit2.text)>0 then form4.xd.Filtered:=true else form4.xd.Filtered:=false; form4.xd.Filter:='Фамилия='''+Edit2.text+''''; end;
Кроме этого поиск должен еще осуществляться по дате и номерам. Вроде бы код должен быть аналогичным для этих параметров, но каждый раз возникает какая-то ошибка с несовпадениями типов и тд. Подскажите пожалуйста в чем же здесь причина??
Тут есть какие-то особенности применения апострофов?
Никаких особенностей... У тебя либо строка (поля в БД типов Text/Memo) - тогда та строка, которую ты ищешь, выделяется апострофами, либо число (поля типов Number/AutoNumber), тогда не выделяется ничем. Либо дата (поле типа DateTime) - тогда с двух сторон - решетки...
Но... Я кажется понял, что ты имеешь в виду. Вот то, что ты делаешь - оно ищет полное соответствие поля и введенного значения, ты ж делаешь "="... Тебе, наверное, надо искать поля, которые содержат введенные данные вместе с другой информацией, а это уже через LIKE (при поиске по текстовому полю):
ADOTable1.Filter:='InfoField LIKE *' +Form1.Edit1.Text+'*';
, если в Эдите будет 'DS', то останутся все поля, содержащие DS-234 ADS-5 DSeg и так далее, где в любом месте в тексте присутствует "DS". Я правильно понял, или у тебя что-то другое?
Цитата
И где можно найти DateSeparator?
Переменная DateSeparator описана в модуле SysUnits...