![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Помогите, пожалуйста, требуется изменить условия запроса на форме во время работы. Предполагается выбирать имя поля из ComboBox, а название записи вбивать в Edit. Как правильно написать в SQL запросе? Вот такая запись является неверной:
Код:
procedure TForm3.Button1Click(Sender: TObject);
Var
Pole, Znach: String;
begin
Pole:=ComboBox1.Text;
Znach:=Edit1.Text;
with Form3.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT *');
SQL.Add('FROM OsSklad');
SQL.Add('WHERE');
SQL.Add('"Pole"="Znach"'); <---как правильно написать надо??? Подскажите ситаксис
Open;
end;Заранее спасибо Последний раз редактировалось Admin, 19.04.2012 в 15:49. |
|
#2
|
||||
|
||||
|
так, если нужно сравнить числа:
Код:
SQL.Add('SELECT *');
SQL.Add('FROM OsSklad');
SQL.Add('WHERE');
SQL.Add([Pole]=1')Код:
SQL.Add('SELECT *');
SQL.Add('FROM OsSklad');
SQL.Add('WHERE');
SQL.Add([Pole]=''text''') |
|
#3
|
|||
|
|||
|
Не работает((, объясню еще раз какова задача. В ComboBox из списка вибирается поле(Name, Type, Pol, Cena и др.) - переменная Pole:String, в Edit заносится содержание поля - переменная Znach:String, после нажатия на кнопку в таблице появляются записи удовлетворяющие условию.
|
|
#4
|
||||
|
||||
|
Использую такой код:
Код:
if sEdit1.Text = '' then exit;
if sCheckBox1.Checked = True then a := ''
else a := '%';
if sComboBox1.ItemIndex=0 then
Exit;
pole := sComboBox1.Text;
SQL.Text := 'SELECT * FROM [Таблица] WHERE '+ pole + ' Like ''' + a + sEdit1.Text + '%'''; |
| Этот пользователь сказал Спасибо Klassenas за это полезное сообщение: | ||
AlexGTX (22.04.2012)
| ||
|
#5
|
||||
|
||||
|
Код:
procedure TForm3.Button1Click(Sender: TObject);
begin
with Form3.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select *');
SQL.Add('from OsSklad');
SQL.Add('where ['+ComboBox1.Text+'] = '+QuotedStr(Edit1.Text));
Open;
end;
end; |
|
#6
|
|||
|
|||
|
Спасибо за быстрый ответ (всем), похоже на то что мне надо, но не работет, может какой-нибудь шаблон есть, который регламентирует символику в этом случае. В идеале мне нужно это:
SQL.Add('WHERE'); SQL.Add('ComboBox1.Text = QuotedStr(Edit1.Text)); только осталось правильно записать, обозначить нужными символами. |
|
#7
|
||||
|
||||
|
была уже где-то данная тема, в лом искать.
в событии выполнения напиши: Код:
case Combobox1.ItemIndex of 0:FindName; 1:findType; 2:findPol; 3:findCena; end; где например FindName процедура поиска по имени в например может быть такой код: Код:
procedure FindName;
begin
with Form3.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select *');
SQL.Add('from OsSklad');
SQL.Add('where ['Name'] = '+QuotedStr(Edit1.Text));
Open;
end;
endаналогично с другими полями. данный метод не универсален, но если, в принципе, полей не так уж и много то вполне может подойти. |
|
#8
|
||||
|
||||
|
Код:
....
Znach:=Edit1.Text;
Form3.Query1.Close;
Form3.Query1.SQL.Text:='SELECT * FROM OsSklad WHERE '+Pole+' = :znach';
Form3.Query1.ParamByName('znach'):=Znach;
Form3.Query1.Open;Последний раз редактировалось Yurk@, 19.04.2012 в 21:23. |
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
AlexGTX (23.04.2012)
| ||
|
#9
|
|||
|
|||
|
Спасибище!!!!!!! То что надо!!! Приятно работать с профессионалами!!!!!
|