Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2011, 15:05   #11
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

Код:
ClientDataSet1.Locate('LastName;FirstName', VarArrayOf( ['Иванов', 'Иван'] ), []);
последний кусок забыл привести
Азамат Казанчев вне форума Ответить с цитированием
Старый 28.04.2011, 13:19   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

думаю, что автору топика нужно что-то вроде такого:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  sFields : string;
  EditValues : variant;
  k, CntFillEdit : integer;
begin
  // подсчитаем, сколько Edit заполнено
  CntFillEdit := ord(Trim(Edit1.Text)<>'') +
                  ord(Trim(Edit2.Text)<>'') +
                  ord(Trim(Edit3.Text)<>'') +
                  ord(Trim(Edit4.Text)<>'');
  ShowMessage('Вы заполнили '+InttoStr(CntFillEdit)+' эдитов из 4-х ');

  // если ни один не заполнен - нечего тут делать, выходим из процедуры!
  if CntFillEdit = 0 then Exit;

  // создадим нужный вариантный массив значений для поиска
  EditValues := VarArrayCreate([0, CntFillEdit-1], varVariant);

  sFields := '';
  k := -1;
  if Trim(Edit1.Text)<>'' then begin
     inc(k);
     if sFields<>'' then sFields := sFields + ';';
     sFields := sFields + 'kod_tovara';
     EditValues[k] := Edit1.Text;
  end;
  if Trim(Edit2.Text)<>'' then begin
     inc(k);
     if sFields<>'' then sFields := sFields + ';';
     sFields := sFields + 'postavwik';
     EditValues[k] := Edit2.Text;
  end;
  if Trim(Edit3.Text)<>'' then begin
     inc(k);
     if sFields<>'' then sFields := sFields + ';';
     sFields := sFields + 'ТУТ_ПОЛЕ_EDIT3';
     EditValues[k] := Edit3.Text;
  end;
  if Trim(Edit4.Text)<>'' then begin
     inc(k);
     if sFields<>'' then sFields := sFields + ';';
     sFields := sFields + 'ТУТ_ПОЛЕ_EDIT4';
     EditValues[k] := Edit4.Text;
  end;

  if Not ADO_Tovar.Locate (sFields, EditValues, [loCaseInsensitive,loPartialKey])
     then ShowMessage('Ничего не нашлось...');

end;
код компилируется. Но работоспособность не проверял!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.04.2011, 15:34   #13
Fastah
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 39
По умолчанию

Всё равно нужно результата нет, долго не искал ошибок, но не ищет если заполнен всего 1 edit и ищет только при введении полного значения.
Ладно всем спасибо за ответы, сделаю одиночный поиск
Fastah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Бинарный поиск в Delphi Алексей777911 Помощь студентам 8 03.02.2011 18:00
Поиск файлов в delphi _PROGRAMM_ Помощь студентам 4 21.09.2010 16:31
Поиск в Delphi Katrina_89 БД в Delphi 5 07.04.2010 18:18
Поиск решения на Delphi SHOP Фриланс 6 26.03.2010 12:11
поиск Borland Delphi 7 n fh dxdj Помощь студентам 1 25.10.2007 19:33