Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Приведение типов


GlowSolnce ©   (2009-09-29 11:03:00) 

Написан собственный класс
 TRdADOQuery = class(TADOQuery)
 private
   { Private declarations }
   FSQLSelect:string;
   FSQLWhere:string;
   FSQLOrder:string;
   procedure SQLAssemble;
 protected
   { Protected declarations }
 public
   { Public declarations }
   constructor Create(AOwner: TComponent); override;
   procedure SelectSQL;
   property SQLSelect:string read FSQLSelect write FSQLSelect;
   property SQLWhere:string read FSQLWhere write FSQLWhere;
   property SQLOrder:string read FSQLOrder write FSQLOrder;
 published
   { Published declarations }
 end;

constructor TRdADOQuery.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
end;

procedure TRdADOQuery.SelectSQL;
begin
  SQL.Text:=FSQLSelect+' '+FSQLWhere+' '+FSQLOrder;
 Open;
end;

На форме лежит TDBGrid

в событии у кнопки пишу так:
ADOConnection1.Open;
TRdADOQuery(DBGrid.DataSource).SQLSelect:='Select * from ...';  // Отрабатывает ОК
TRdADOQuery(DBGrid.DataSource).SQL.Text:='Select * from tSite'; // Отрабатывает ОК
TRdADOQuery(DBGrid.DataSource).SelectSQL; // Здесь ошибка.

Ошибка заключается в том, что в методе SqlSelect
в строчке
SQL.Text:=FSQLSelect+' '+FSQLWhere+' '+FSQLOrder;

Объект SQL=nil

Как корректно привести типы?
Такое ощущение, что происходит не приведение типов, а создание нового экземпляра.


qwer_qwer   (2009-09-29 11:15:00) [1]

TRdADOQuery(DBGrid.DataSource.DataSet)


Наверх

Титульная страница Поиск, карта сайта Написать письмо