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

Вниз

Проблемы с Locate   Найти похожие ветки 

 
Rom ©   (2006-02-13 22:05) [0]

Здравствуйте.
Помогите, пожалуйста, разобраться с Locate. Для поиска предполагаю использую описанную ниже процедуру. Поиск только по фамилии (edit1) работает, а по имени (edit2) или двум параметрам нет. Помогите, пожалуйста, найти ошибку и обеспечить поиск по двум параметрам

procedure TForm1.Button4Click(Sender: TObject);
var
locopts: TLocateOptions;
locFields: string;
locValues: variant;
begin
locopts:=[];
locFields:="last_name";
if Length(edit2.Text)>0 then
begin
locFields:=locFields+"; first_name";
LocValues:=VarArrayCreate([0,1], varVariant);  //создание вариантного массива
LocValues[0]:=Edit1.Text; //фамилия
LocValues[1]:=edit2.Text; //имя
end
else
LocValues:=edit1.Text;

if checkBox1.Checked then
  locopts:=locopts+[loPartialKey]; // поиск с частичным совпадением
if checkBox2.Checked then
  locopts:=locopts+[loCaseInsensitive]; //---- без учёта регистра

query1.Locate(LocFields, LocValues, locopts );
end;


 
unknown ©   (2006-02-13 22:49) [1]

Как ни странно, но код рабочий.
проверил на D7, IBX 7.08


 
Виталий Панасенко   (2006-02-14 11:39) [2]

Не, заню, как все реализовано, но, если в Query1 запрос вида select * from table, можно(нужно!!!) переделать на select * from table where last_name=(like) :last_name and firest_name=(like):first_name
Запрос можно создавать динамически, с учетом значений CheckBox1/2. На малых обьемах разницы не будет видно. Но на 1000 и более записях(при наличии индекса) ты будешь приятно удивлен(или НЕ приятно).



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

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

Наверх




Память: 0.44 MB
Время: 0.01 c
2-1139812409
Irinka
2006-02-13 09:33
2006.03.05
Простой FTP - клиент


1-1139058199
Still Swamp
2006-02-04 16:03
2006.03.05
Как в из метода сделать обычную процедуру?


3-1137025928
Kromwerk
2006-01-12 03:32
2006.03.05
Преобразование времени


2-1139924103
VitV
2006-02-14 16:35
2006.03.05
Delphi+Немецкий


4-1134648730
Deka
2005-12-15 15:12
2006.03.05
Сохранение заданного положения окна в Z-порядке.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский