IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> вопрос по поиску
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


С помощью этого кода осуществляется поиск в БД по фамилии. Проблем здесь не возникает.

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;



Кроме этого поиск должен еще осуществляться по дате и номерам. Вроде бы код должен быть аналогичным для этих параметров, но каждый раз возникает какая-то ошибка с несовпадениями типов и тд.
Подскажите пожалуйста в чем же здесь причина??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Строки с двух сторон отделены апострофами, а Дата - вот так у меня только что отработало:
  ADOTable1.Filter := 'DateOfBirth=#' + Edit1.Text + '#'; // Edit1.Text содержало 13/09/1984


Число передается без апострофов:
  ADOTable1.Filter := 'index=' + Edit1.Text;

 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


а решетка какую функцию выполняет? Имеет ли значение какими символами разделены день, месяц и год?
Дело в том что теперь аргументы имеют неверный тип wacko.gif ....

Сообщение отредактировано: 1147 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
а решетка какую функцию выполняет?
Решеткой с двух сторон выделяется формат Даты (точно так же, как и апострофами - строка).
Цитата
Имеет ли значение какими символами разделены день, месяц и год?
Вообще-то разделяться они должны тем символом, который хранится в переменной DateSeparator, иначе будет ошибка...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


В случае если у меня не только цифры, но еще и буквы. Например DS-183, GH356 (разделенные запятой). Тут есть какие-то особенности применения апострофов?
Тоесть в ячейках данного столбца все время находятся смешанные данные, а не только конкретно буквы или цифры. Как вообще в этом случае поступить? Можно ли подобрать какойто подходящий критерий фильтрации или стоит воспользоваться другим методом поиска?
И где можно найти DateSeparator?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
Тут есть какие-то особенности применения апострофов?
Никаких особенностей... У тебя либо строка (поля в БД типов Text/Memo) - тогда та строка, которую ты ищешь, выделяется апострофами, либо число (поля типов Number/AutoNumber), тогда не выделяется ничем. Либо дата (поле типа DateTime) - тогда с двух сторон - решетки...

Но... Я кажется понял, что ты имеешь в виду. Вот то, что ты делаешь - оно ищет полное соответствие поля и введенного значения, ты ж делаешь "="... Тебе, наверное, надо искать поля, которые содержат введенные данные вместе с другой информацией, а это уже через LIKE (при поиске по текстовому полю):
 ADOTable1.Filter:='InfoField LIKE *' +Form1.Edit1.Text+'*';
, если в Эдите будет 'DS', то останутся все поля, содержащие
DS-234
ADS-5
DSeg
и так далее, где в любом месте в тексте присутствует "DS". Я правильно понял, или у тебя что-то другое?

Цитата
И где можно найти DateSeparator?
Переменная DateSeparator описана в модуле SysUnits...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Гость






Спасибо за помощь! Попробовал все это сделать в новом проекте-работает без проблем, а вот в старом никак не хочет... нужно искать ошибку. чтото мешает нормальной работе...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






А можно сделать чтобы найденные данные были выделины каким-нибудь цветом? Например в ячейке 7К-1952dsr,85s,59g (85s которую искал пользователь) была выделена зеленым цветом?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Надо рыть в сторону OnDrawCell, наверное, можно, чуть позже попробую, расскажу, что получилось... Посмотри пока в DRKB, там может быть что-то полезное... Ты ж TDBGrid используешь?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Да в TDBGrid. Посмотрю..
И все равно в каких то случаях поиск осущесттвляется нормально, а в каких то прерывается и пишет что неверный тип. Не пойму в чем дело sad.gif. Ну да ладно. Принцип понятен, а с остальным разберусь

Сообщение отредактировано: 1147 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 26.04.2024 6:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name