Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

ComboBox,SQL,Delphi...

Юльчик Знаток (452), закрыт 13 лет назад
Возникла проблема с динамическим запросом. Необходимо взять из ComboBox данные и отобразить в таблице из БД все записи по данному значению. НО.... При подстановке в динамический запрос появляется ошибка: ComboBox1.Text не имеет значения по умолчанию. Не пойму что ему надо, может кто-то разберётся в чём ошибка?

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Километраж, Дневной, Счёт from Выезды where Номер_машины=ComboBox1.Text');
ADOQuery1.Open;
Лучший ответ
Сергей Барановский Мудрец (14000) 13 лет назад
ADOQuery1.SQL.Add('select Километраж, Дневной, Счёт from Выезды where Номер_машины=ComboBox1.Text');

Так никакое значение из комбобокса не подставится.
Надо
ADOQuery1.SQL.Add('select Километраж, Дневной, Счёт from Выезды where Номер_машины= '''+ComboBox1.Text+'''');
или
ADOQuery1.SQL.Add('select Километраж, Дневной, Счёт from Выезды where Номер_машины= :1');
ADOQuery1.Parameters[0].Value := ComboBox1.Text;
Остальные ответы
MaxIm Знаток (331) 13 лет назад
на какое событие назначаешь эти инструкции?
Сергей Бородин Профи (532) 13 лет назад
Свойство text в момент выполнения этого кода не имеет значения - там пусто.
Напиши так:

if ComboBox1.itemindex <> -1 then
begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select Километраж, Дневной, Счёт from Выезды where Номер_машины=ComboBox1.Text');
ADOQuery1.Open;
end
else
begin
Application.ShowMessage("Выберите значение в ComboBox1", "", Mb_ok);
end;

(Если не поможет то расскажи где ты пишешь этот код)
korol ariya Мастер (1765) 13 лет назад
Вот бы все девушки задавали такие вопросы=) Сергей Бородин написал правильно
Дополню http://www.codenet.ru/progr/delphi/stat/SQL-Delphi.php
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Query1.close; {Деактивируем запрос в качестве одной из мер предосторожности }
Query1.SQL.Clear; {Стираем любой предыдущий запрос}
If Memo1.Lines[0] <> '' {Проверяем на предмет пустого ввода} then
Query1.SQL.Add(Memo1.Text) {Назначаем свойству SQL текст Memo}
else
begin
messageDlg('Не был введен SQL-запрос', mtError, [mbOK], 0);
exit;
end;
try {перехватчик ошибок}
Query1.Open; {Выполняем запрос и открываем набор данных}
except {секция обработки ошибок}
On e : EDatabaseError do {e - новый дескриптор ошибки}
messageDlg(e.message,
mtError,
[mbOK],0); {показываем свойство message объекта e}
end; {окончание обработки ошибки}
end;
Похожие вопросы