Вобщем вопрос все еще актуален....., решение от 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. если опять не так оформил не баньте, а подскажите что за теги..., несилен я в этом