Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.21;
Скачать: CL | DM;

Вниз

Поиск по всем полям!!!   Найти похожие ветки 

 
Настенька   (2004-10-23 08:46) [0]

Сделала такую вещь. Есть один едит и dbgrid. С помощью запроса ищется по всем полям таблицы то, что введено в едит. Вот мой запрос:
на событие onchange у едита

var sql:string; i,kol:byte;
begin
Sql:="select * from table1 where ";
for kol:=0 to DBGrid1.Columns.Count-1 do
begin
Sql:=Sql+"cast (" +DBGrid1.Columns[kol].FieldName+ " as varchar(30)) like "%"+edit1.text+"%"";
if kol < DBgrid1.Columns.Count-1 then sql:=sql+ " or ";
end;
Q1.Close;
Q1.SQL.Clear;
Q1.SQL.Add(sql);
Q1.Open;

Тут все круто работает: но вот в чем проблема. Он все поля приводит к cast, но мне не надо, чтобы он приводил стринговые поля, так как в них и без cast прекрасно ищется. Что сделать?


 
DSKalugin ©   (2004-10-23 16:28) [1]

переписать процедуру поиска ВПРИЦИПЕ!
А механизм поиска построить на использовании функции Locate()


 
Vlad ©   (2004-10-23 16:38) [2]


> Он все поля приводит к cast, но мне не надо, чтобы он приводил
> стринговые поля, так как в них и без cast прекрасно ищется.
> Что сделать?

Ну и в чем проблема? if then написать не можем?
А про DataType я вам кажется говорил.


 
Настенька   (2004-10-24 08:55) [3]

я делала так:
Sql:="select * from table1 where ";
for kol:=0 to DBGrid1.Columns.Count-1 do
begin
if query1.fields[i].datatype=ftinteger then
Sql:=Sql+"cast (" +DBGrid1.Columns[kol].FieldName+ " as varchar(30)) like "%"+edit1.text+"%""
else Sql:=Sql+""+DBGrid1.Columns[kol].FieldName+" like "%"+edit1.text+"%""
if kol < DBgrid1.Columns.Count-1 then sql:=sql+ " or ";
end;

но это не очень работает. что не так?


 
ЮЮ ©   (2004-10-25 03:04) [4]

if стринговое поле then
 не приводить
else
 приводить

далеко не соответствует вашему

if целое поле then
 приводить
else
 не приводить

>но это не очень работает. что не так?
не очень - это как?



Страницы: 1 вся ветка

Текущий архив: 2004.11.21;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
14-1099406379
Andryk
2004-11-02 17:39
2004.11.21
Кижки которы делают обкуренные авторы для детей :))))))


1-1099858549
тт
2004-11-07 23:15
2004.11.21
Генератор случайных чисел.


14-1099569798
1C
2004-11-04 15:03
2004.11.21
Подключить принтер к 1С


3-1098254258
Hmm
2004-10-20 10:37
2004.11.21
Помогите решить проблемму с запросом. Внешний ключ.


14-1099233793
DRK
2004-10-31 17:43
2004.11.21
Разгон Power Color Radeon 9600