Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.042 c
1-1088117703
ZiRoCool
2004-06-25 02:55
2004.07.11
Сворачивание главной формы


3-1087450665
Berezne
2004-06-17 09:37
2004.07.11
Кодировка файлов БД dBase


3-1087308867
Ross
2004-06-15 18:14
2004.07.11
Дата


1-1088164174
Шишкин Илья
2004-06-25 15:49
2004.07.11
Проверка строки по маске


6-1084457382
perec
2004-05-13 18:09
2004.07.11
Посылка потоков через сокеты.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский