修改了Delphi自带的三层无状态实例源码。

yjcinfo 2008-11-14 09:32:20
客户端:
procedure TForm1.ClientDataSet1BeforeGetRecords(Sender: TObject;
var OwnerData: OleVariant);
var
LastValue: OleVariant;
begin
if ClientDataSet1.Active then
begin
CDSClone.CloneCursor(ClientDataSet1, True);
CDSClone.Last;
LastValue := CDSClone.RecNo; {返回客户端当前所在的行号}
CDSClone.Close;
end else
LastValue := NULL;
OwnerData := VarArrayOf([Memo1.Lines.Text, LastValue]);
end;

服务器:
try
ADOQuery1.Close;
ADOQuery1.SQL.Text := OwnerData[0];
if not VarIsNull(OwnerData[1]) and not VarIsEmpty(OwnerData[1]) then
begin
ADOQuery1.Open;
ADOQuery1.MoveBy(OwnerData[1] - 1); {移动到客户端返回的位置}
ADOQuery1.Next;
end;
finally
OwnerData := NULL;
end;



...全文
99 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanchangfantasy 2008-11-14
  • 打赏
  • 举报
回复
没见过这个自带的,
yjcinfo 2008-11-14
  • 打赏
  • 举报
回复
原来是通过关键字段来获得客户端记录的位置,现在改为行号来获得客户端记录的位置,这样返回信息能正确码?
fangsp 2008-11-14
  • 打赏
  • 举报
回复
有什么问题?

2,495

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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