Форум: "Базы";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
ВнизПодскажите как организовать поиск Найти похожие ветки
← →
ceval (2004-06-04 20:26) [0]Добрый вечер всем !
Подскажите как организовать поиск по 2 полям
что бы можно было одно поле оставить пустым
т.е например :
поля X Z
значен. гмил 566
788
гмил 967
в поле Х нет значения
Использую код :
ADOTable1.Locate("X;Z",VarArrayOf ([edit1.Text,Edit2.text]),[lopartialkey])...
если ввожу "гмил" "566" --- все работает нормально
как сделать что бы про вводе " " "788" -- тоже работала нормально Зарания благодарин !!!
P.s Прошу прощения за размытый вопрос
← →
sniknik © (2004-06-05 00:01) [1]а так "" "788" не нормально?
← →
ilua (2004-06-07 04:49) [2]А зачем тебе это нужно.Если ты хотишь искать по одному полю ,можешь использовать следующие примеры (примеры были опробованы на Clientdataset):
1) Clientdataset1.findKey([edit1.text])
2)Clientdataset1.FindNearest([edit1.text])
но для этих двух методов нужно чтобы поле было прондексировано,это можно сделать при помощи функции:(Clientdataset1.AddIndex(......))
3)Clientdataset1.SetKey;
Clientdataset1.FieldByName("Имя поля").AsString:=edit1.text;
Clientdataset1.GotoKey; или вместо GotoKey используй GotoNearest;
4)Clientdataset1.SetRangStart;
Clientdataset1.FieldByName("Имя поля").AsString:=edit1.text;
Clientdataset1.SetRangEnd;
Clientdataset1.FieldByName("Имя поля").AsString:=edit2.text;
ClientDataSet1.ApplyRange;
5)Clientdataset1.EditRangStart;
Clientdataset1.FieldByName("Имя поля").AsString:=edit1.text;
Clientdataset1.EditRangEnd;
Clientdataset1.FieldByName("Имя поля").AsString:=edit2.text;
ClientDataSet1.ApplyRange;
6)Clientdataset1.EditKey;
Clientdataset1.FieldByName("Имя поля").AsString:=edit1.text;
ClientDataset1.GotoKey;
← →
ceval (2004-06-07 13:02) [3]МНЕ нужен поиск по 2 полям
НО есть данные кртррые содержат только
одно поле
если а в вожу данные в два поля то все нормально работает
если одно поле оставляю пустым то не работает т е выдает сообщения что такой записи нет
Как написать что бы проверяло если данные в 2 полях поиск по 2 полям если введены данные в одно поле поиск по одному полю!
← →
ilua (2004-06-11 02:38) [4]Попробуй так:напиши
Clientdataset1.FindKey([edit1.text;edit2.text]) то если у тебя индекс расчитан на два поля то он будет искать по двум полям,а если у тебя индекс расчитан на одно поле то он будет искать по одному полю;
Индекс нужно создать обязательно,можно при помощи метода:
Clientdataset1.AddIndex(....)
← →
ЮЮ © (2004-06-11 02:54) [5]if edit1.Text = "" then
ADOTable1.Locate("Z",Edit2.text,[lopartialkey])
else
ADOTable1.Locate("X;Z",VarArrayOf ([edit1.Text,Edit2.text]),[lopartialkey])
← →
sniknik © (2004-06-11 08:06) [6]ЮЮ © (11.06.04 02:54) [5]
получиш лишнее в первом варианте, "" тоже значение а ты его проигнорировал. и оно прекрасно ищется, но в вопросе у него строка из пробелов для поиска, и это может сработать но только если поле varchar и там действительно строка из стольких пробелов.
(в обшем ишется все, но только то что есть а не то что кажется там есть)
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.07.11;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c