三层结构,clientdataset,setkey,求助

ThreeYears 2003-10-16 05:07:36
客户端 dll:
 保存事件:
if Inkid='' then exit;
vtlist := vararraycreate([0, 0], varVariant);
vtlist[0] :='保存数据';
ClientDataSet1.providername := 'DataSetProvider_Blobrc';
ClientDataSet1.DataRequest(vtlist);
with ClientDataSet1 do
begin
close;
providername := 'DataSetProvider_Blobrc';
open;
if findkey([Inkid]) then //问题出在这里,如果去掉此句,保存成功。有无其它方法定位记录?
begin
edit;
ClientDataSet1CDSDesigner.LoadFromFile(FFileName);
applyUpdates(0);
end;
close;
end;
服务器端:
function Tscgl_datamould.DataSetProvider_wordDataRequest(Sender: TObject;
Input: OleVariant): OleVariant;
begin
if input[0]='保存数据' then
begin
with Table2 do
begin
close;
TableName :='XTGL_BMBZB';
end;
end;
运行时报错如下:
’操作失败,可能原因,clientDataSet1,No index currently active‘
数据表已为kid建有唯索引,
请问是什么原因?怎么解决
...全文
33 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvloj 2003-10-17
  • 打赏
  • 举报
回复
1.用Locate代替FindKey
2.估计是提交的数据有重复的记录.

1,178

社区成员

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

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