不明白返回记录集到TClientDataSet上!

JoeSong 2003-12-10 01:01:56
中间层这样有四个控件:TADOConnection,TADODataSet,TADOStoreProc,TDataSetPrivoder,我在中间层上定义属性,方法,其中有两个方法,一个是GetCount,用TADODataSet取得表的记录数,另一个是ExeProc,用TADOStordProc执行存储过程,这两个方法在客户端用TDCOMConnection的AppServer调用,都可以调用成功,所以我觉得做三层系统时中间层只需要一个TDataSetPrivoder就行了,因为我的TADOStoreProc与TDataSetPrivoder控件在中间层定义接口时根本没有联系上,那么我现在又要定义一个GetRecord的方法,那么要如何才能让客户端可以取到返回的记录集呢?
如下代码,请指点:
function GetRecord:OleVariant;
begin
adoDataSet.commandText := 'Select Top 10 * From DataList';
adoDataSet.Open;
Result := //这里要如何写才能让客户端的TClientDataSet.Data得到值?
//因为我要在客户端用TDCOMConnect.AppServer.GetRecord来调用
end;
...全文
61 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JoeSong 2003-12-12
  • 打赏
  • 举报
回复
frogshero(三波萝)的回答可能是最有帮助的吧!我设了20分有点少,我想再加10分给大家结贴(虽然30分不多,但总算是能说明还有一点诚意吧),但我不知道在哪里加分,上面的各位谁告诉我一下好结贴啊!谢谢大家啊!
lastexile 2003-12-10
  • 打赏
  • 举报
回复
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1099676
txmaster的Getdatas方法.
frogshero 2003-12-10
  • 打赏
  • 举报
回复
Client:
procedure TForm1.Button3Click(Sender: TObject);
begin
cds.Data :=DCOMConnection1.AppServer.GetData;
end;
frogshero 2003-12-10
  • 打赏
  • 举报
回复
function TTestForEver.GetData: OleVariant;
var
iOut:integer;
begin
with adoquery1 do
begin
sql.Clear;
sql.Add('select * from authors');
open;
DataSetProvider1.DataSet :=adoquery1;
Result:=DataSetProvider1.GetRecords(-1,iOut,MetaDataOption);
end;
end
duxin 2003-12-10
  • 打赏
  • 举报
回复
soaringsouth(栈桥捉鳖) 有时间 没看到你了

搂住他说的没错 你自定义的接口 返回数据要自己接收
soaringsouth 2003-12-10
  • 打赏
  • 举报
回复
服务器端:result:=DataSetPrivoder1.data;
客户端:ClientDataSet1.Data:=Appserver.getrecorder;
delphi2java 2003-12-10
  • 打赏
  • 举报
回复
把:TClientDataSet.Data定义为一个变体类型就可以了。
JoeSong 2003-12-10
  • 打赏
  • 举报
回复
看来没有人能解决?
我咋觉得大家好像都没有用MIDAS写三层系统一样,还是CSDN现在没有高手了?或者要写就一定是客户端的TClientDataSet传SQL语句返回的记录集!这个似乎有违OOP的概念啊!

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧