客户端调用应用程序服务器中定义的方法的问题???(与数据有关) ( 积分: 100 )

  • 主题发起人 chlf6312
  • 开始时间
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有什么不同,希望解答的清楚一些。如果分不够可以再加,先谢谢了。
 
C

chlf6312

Unregistered / Unconfirmed
GUEST, unregistred user!
没人回答,那我结贴了。
 
C

chlf6312

Unregistered / Unconfirmed
GUEST, unregistred user!
上边的帖子结束了,现在我再提出个问题
在多表查询后,修改了查询的记录,更新回数据库的时候,我怎么样才能在中间层知道
究竟修改了哪个表,修改了哪个值呢?
我想手动更新!!!
希望达人能解答我的疑问?
 
顶部