![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Приведение типов
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)