Показать сообщение отдельно
  #9  
Старый 11.01.2011, 09:53
Аватар для th_bav
th_bav th_bav вне форума
Новичок
 
Регистрация: 02.12.2010
Сообщения: 74
Репутация: 10
По умолчанию

Вобщем вопрос все еще актуален....., решение от 03.12.2010, 13:40 оказалось не вполне уместным так как не решает полностью проблемы...., просто теперь предо мной задача сделать выборку уже по 7 критериям и само-сабой какие то поля могут быть пустыми, а какие то заполнеными. Описывать все варианты просто невыносимо долго да и глупо. Вобщем решил, что SQL запрос нужно строить исходя из того, что выбрал пользователь...
Вот вариант из 2 полей Edit:
Я сначала записываю запрос в Memo1, а потом его уже запускаю:
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  k:Integer;
begin
  Form1QueryCrosse.SQL.Clear;
  Form1.Memo1.Clear;
	Memo1.Lines.Add('SELECT * FROM Crosse');
  if Edit1.Text<>'' then
      Memo1.Lines.Add('WHERE telefon LIKE '''+Edit1.Text+'%''');
      k:= Length(Memo1.text)-((Memo1.Lines.Count-1)*2);
  if Edit2.Text<>'' then
      if k>24 then
          Memo1.Lines.Add(' and  grom LIKE ''' +Edit2.Text+'%''')
      else Memo1.Lines.Add(' WHERE grom LIKE ''' +Edit2.Text+'%''')
    end;
    begin
    Form1QueryCrosse.SQL.Add(Memo1.Text);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
	Form1QueryCrosse.SQL.Clear;
	Form1QueryCrosse.SQL.Add(Memo1.Text);
	Form1QueryCrosse.Active:=true;
end;
А проблема вся в том, что я не могу объеденить 2 процедуры воедино поетому мне приходиться все делать в 2 движения
1)Создавать запрос в поле Memo1
2)Добавлять запрос и поля Memo1
Подскажите как мне сделать это по нажатию одной кнопки а не по двум - Запрос и Вывод
Я пробывал так
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
  k:Integer;
begin
  Form1QueryCrosse.SQL.Clear;
  Form1.Memo1.Clear;
	Memo1.Lines.Add('SELECT * FROM Crosse');
  if Edit1.Text<>'' then
      Memo1.Lines.Add('WHERE telefon LIKE '''+Edit1.Text+'%''');
      k:= Length(Memo1.text)-((Memo1.Lines.Count-1)*2);
  if Edit2.Text<>'' then
      if k>24 then
          Memo1.Lines.Add(' and  grom LIKE ''' +Edit2.Text+'%''')
      else Memo1.Lines.Add(' WHERE grom LIKE ''' +Edit2.Text+'%''')
    end;
    begin
    Form1QueryCrosse.SQL.Add(Memo1.Text);
    Form1QueryCrosse.Active:=true;
end;
Вот на что ругается
[Error] Fund.pas(126): Undeclared identifier: 'Form1QueryCrosse'
[Error] Fund.pas(126): Missing operator or semicolon
[Error] Fund.pas(126): Missing operator or semicolon
[Error] Fund.pas(127): Missing operator or semicolon
[Error] Fund.pas(127): Missing operator or semicolon
[Error] Fund.pas(128): '.' expected but ';' found
[Error] Fund.pas(60): Unsatisfied forward or external declaration: 'TForm1.Button5Click'
[Fatal Error] CMag.dpr(8): Could not compile used unit 'Fund.pas'
P.S. если опять не так оформил не баньте, а подскажите что за теги..., несилен я в этом
Ответить с цитированием