C
chlf6312
Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个应用程序服务器,用的是Remote Data Module,在上面放了ADOconnection,ADOquery(没有写Sql语句在Sql属性中),DataSetProvider。然后用Type Library定义了一个方法,如下:
procedure TCarProjRDM.SqlSelect(const TableName, WhereStrings: WideString);
begin
ADOQ_Car.Close;
ADOQ_Car.SQL.Clear;
if WhereStrings = '' then
ADOQ_Car.SQL.Add('Select * From '+TableName+'')
else
ADOQ_Car.SQL.Add('Select * From '+TableName+' where '+WhereStrings+'');
ADOQ_Car.Open;
end;
客户端用的是DCOMconnection,ClientDataSet。我在客户端的一个button的Click事件中写如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
ICar:ICarProjRDM;(创建RDM时自动生成的接口,在Type Library中可以看到)
begin
ICar:=CoCarProjRDM.Create;
ICar.SqlSelect(Edit1.Text,'');
ClientDataSet1.Active:=false;
ClientDataSet1.Active:=true;
end;
执行上面的代码的时候会报错,报的是Missing Sql Property。
我想问,上面的代码问题处在什么地方?
如果我这样写:
procedure TForm1.Button1Click(Sender: TObject);
begin
DCOMConnection1.AppServer.SqlSelect(Edit1.Text,'');
ClientDataSet1.Active:=false;
ClientDataSet1.Active:=true;
end;
就会出现正确的结果。
希望大家给我解答一下,茹果我想用接口ICarProjRDM来实现方法的调用,怎么样实现,还有为什么appsever和ICarProjRDM有什么不同,希望解答的清楚一些。如果分不够可以再加,先谢谢了。
procedure TCarProjRDM.SqlSelect(const TableName, WhereStrings: WideString);
begin
ADOQ_Car.Close;
ADOQ_Car.SQL.Clear;
if WhereStrings = '' then
ADOQ_Car.SQL.Add('Select * From '+TableName+'')
else
ADOQ_Car.SQL.Add('Select * From '+TableName+' where '+WhereStrings+'');
ADOQ_Car.Open;
end;
客户端用的是DCOMconnection,ClientDataSet。我在客户端的一个button的Click事件中写如下代码:
procedure TForm1.Button1Click(Sender: TObject);
var
ICar:ICarProjRDM;(创建RDM时自动生成的接口,在Type Library中可以看到)
begin
ICar:=CoCarProjRDM.Create;
ICar.SqlSelect(Edit1.Text,'');
ClientDataSet1.Active:=false;
ClientDataSet1.Active:=true;
end;
执行上面的代码的时候会报错,报的是Missing Sql Property。
我想问,上面的代码问题处在什么地方?
如果我这样写:
procedure TForm1.Button1Click(Sender: TObject);
begin
DCOMConnection1.AppServer.SqlSelect(Edit1.Text,'');
ClientDataSet1.Active:=false;
ClientDataSet1.Active:=true;
end;
就会出现正确的结果。
希望大家给我解答一下,茹果我想用接口ICarProjRDM来实现方法的调用,怎么样实现,还有为什么appsever和ICarProjRDM有什么不同,希望解答的清楚一些。如果分不够可以再加,先谢谢了。