• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Поиск по нескольким полям

  • Автор темы Brunetka
  • Дата начала
B

Brunetka

Есть БД, нужно в каждой отдельной таблице осуществить поиск по 1 или нескольким полям. Вот мой код на дельфи:
[codebox]procedure TForm1.Button3Click(Sender: TObject);
var
LocOpts : TLocateOptions;
t : string;
n: array of variant;
index: integer ;
begin
LocOpts :=[];
IF CheckBox8.Checked THEN LocOpts := LocOpts + [loPartialKey];
IF CheckBox9.Checked THEN LocOpts := LocOpts + [loCaseInsensitive];


case RadioGroup1.ItemIndex of
0:
begin
IF Edit1.Text<>'' THEN
begin
t := t+'KEY_BALETI;';
index := Length(n);
SetLength(n, index + 1);
n[index] := Edit1.Text;
end;

IF Edit2.Text<>'' THEN
begin
t := t+'NAME_BALETA;';
index := Length(n);
SetLength(n, index + 1);
n[index] := Edit2.Text;
end;

IF Edit3.Text<>'' THEN
begin
t := t+'DATA_SOZD;';
index := Length(n);
SetLength(n, index + 1);
n[index] := Edit3.Text;
end;

DataModule2.IBQuery1.Locate(t, n, LocOpts);

end;
end;[/codebox]
Здесь у меня RadioGroup1 это выбор таблиц (пишу, соответственно, пока для первой), Edit1, Edit2, Edit3 -поля, по которым ищу.
Ошибок не выдает, но и не работает((БД, подключена. посмотрите, пожалуйста, ошибок не видите? Или я что-то еще забыла сделать...
 
E

etc

Locate - это функция. Смотрите что она возвращает и "пляшите" отсюда. И 2 параметр у вас по моему неправильный, смотрите справку, там есть примеры.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!