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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2007, 14:05   #1
Elena
Пользователь
 
Аватар для Elena
 
Регистрация: 27.04.2007
Сообщений: 31
По умолчанию SQL-запрос

Добрый день!
Нужна помощь с SQL-запросом.

Вот тескт программы:

type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBLookupComboBox1: TDBLookupComboBox;
DBEdit1: TDBEdit;
Button1: TButton;
DBGrid1: TDBGrid;
ADOQuery2: TADOQuery;
DataSource2: TDataSource;
Label1: TLabel;
DBGrid2: TDBGrid;
ADOQuery3: TADOQuery;
DataSource3: TDataSource;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DataSource2DataChange(Sender: TObject; Field: TField);
private
{ Private declarations }
public
{ Public declarations }
end;

...

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery2.Close;
ADOQuery2.SQL.Text:='SELECT * FROM Stage_description WHERE id_stage_name='+ADOQuery1.FieldbyNa me('id_stage_name').AsString;
ADOQuery2.Open;
end;

// ADOQuery1.SQL.Text:='SELECT * FROM Stage_name';


procedure TForm1.FormCreate(Sender: TObject);
begin
Caption:='Select_Stage. Выбор данных о стадии по названию';
Label1.Caption:='Выберите материал:';
Button1.Caption:='Показать';
end;

procedure TForm1.DataSource2DataChange(Sender : TObject; Field: TField);
begin
ADOQuery3.Close;
// ADOQuery3.SQL.Text:='SELECT * FROM Stage,Stage_description WHERE id_stage_name='+ADOQuery1.FieldbyNa me('id_stage_name').AsString+'AND Stage_description.id_stage_descript ion = Stage.id_stage_description';
ADOQuery3.SQL.Text:='SELECT * FROM Stage WHERE id_stage_description = '+ ADOQuery2.FieldbyName('id_stage_des cription').AsString;
ADOQuery3.Open;
end;


Нужно чтобы в DBGrid2 выводилось из таблицы Stage где Stage_description.id_stage_descript ion = Stage.id_stage_description

Выдает ошибку 'Project .exe raised exception class EOleException with message "Ошибка синтаксиса (пропущен оператор) в выражении запроса 'id_stage_description = '"'
Elena вне форума Ответить с цитированием
Старый 17.05.2007, 14:47   #2
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

а на каком именно моменте ругается в делфе?
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 17.05.2007, 14:54   #3
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Подозреваю, что ругается здесь:
ADOQuery3.SQL.Text:='SELECT * FROM Stage WHERE id_stage_description = '+ ADOQuery2.FieldbyName('id_stage_des cription').AsString;
И это может быть связано с тем, что переменная id_stage_description - не числовая, а строковая и в этом случае надо писать так:
ADOQuery3.SQL.Text:='SELECT * FROM Stage WHERE id_stage_description = '+ '''' + ADOQuery2.FieldbyName('id_stage_des cription').AsString + '''';
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 17.05.2007, 15:13   #4
Elena
Пользователь
 
Аватар для Elena
 
Регистрация: 27.04.2007
Сообщений: 31
По умолчанию

Спаибо всем. Я уже сама разобралась
Elena вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50
SQL запрос Uomo БД в Delphi 17 23.04.2008 14:12
Запрос Инночка БД в Delphi 2 23.04.2008 13:19
SQL запрос SERG1980 БД в Delphi 6 19.10.2007 23:03
SQL-запрос Alexey_vyb БД в Delphi 4 22.05.2007 18:52