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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2015, 13:20   #11
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Мне просто интересно как
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   with ADOQuery1 do
   begin
     SQL.Text := 'Select Код, Naimenovanie, Proizvoditel, kolvo '+
                 ' from tab1 where 1=1 ';
   if edtNaimenovanie.Text<>'' then SQL.Append('and Naimenovanie='+ Trim(edtNaimenovanie.Text)) ;
   Open;
   end;

end;
После этого edtNaimenovanie.Text определяет как параметр . интересно как у вас работает
Изображения
Тип файла: jpg Ednaimen.jpg (76.3 Кб, 75 просмотров)
Тип файла: jpg Oshibk.jpg (59.5 Кб, 88 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 09.05.2015, 13:39   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ха! Так ты ковычки забыл )))
Код:
 if edtNaimenovanie.Text<>'' then SQL.Append('and Naimenovanie='+ Quoted(Trim(edtNaimenovanie.Text))) ;
Или если с параметрами
Код:
 if edtNaimenovanie.Text<>'' then begin
  SQL.Append('and Naimenovanie=:'+ edtNaimenovanie.name) ;
  ParamByName(edtNaimenovanie.name).Value:=Trim(edtNaimenovanie.Text);
 end
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.05.2015, 14:00   #13
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Stilet Огромное вам человечески спасибо ... Да, вот это профессиональный подход ....
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
   with ADOQuery1 do
   begin
     SQL.Text := 'Select Код, Naimenovanie, Proizvoditel, kolvo '+
                 ' from tab1 where 1=1 ';
    if edtNaimenovanie.Text<>'' then
    begin
     SQL.Append('and Naimenovanie=:'+ edtNaimenovanie.Name) ;
     Parameters.ParamByName(edtNaimenovanie.Name).Value:=Trim(edtNaimenovanie.Text);
    end;
    if edtProizvoditel.Text<>'' then
    begin
     SQL.Append('and Proizvoditel=:'+ edtProizvoditel.Name) ;
     Parameters.ParamByName(edtProizvoditel.Name).Value:=Trim(edtProizvoditel.Text);
    end;
    Open;
   end;
end;

end.
Работает хорошо . Код читается хорошо ....... Огромное вам спасибо

Последний раз редактировалось xxbesoxx; 09.05.2015 в 14:15.
xxbesoxx вне форума Ответить с цитированием
Старый 10.05.2015, 15:54   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
В таких случаях запросы хорошо упаковывать в хранимые процедуры
Не вижу преимуществ. В том же сиквеле это выльется в процедуре или в exec (@Text) или в запрос с кучей заглушек
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 10.05.2015, 16:06   #15
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
В том же сиквеле это выльется в процедуре или в exec (@Text) или в запрос с кучей заглушек
Ну не факт. Наши делали запрос в временную таблицу, из которой потом дозапрашивали согласно новым условиям. КПД очень даже неплохое показало.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск id в таблице tanek Помощь студентам 7 11.03.2012 16:29
поиск по таблице sid1868 Помощь студентам 1 10.11.2010 16:23
Поиск по таблице Kemeron Microsoft Office Access 1 02.06.2010 21:55
Поиск в таблице k1r1ch Общие вопросы Delphi 1 30.06.2009 15:57
Поиск в таблице Voffka БД в Delphi 1 08.05.2007 01:16