一个郁闷的问题,三层结构

ThreeYears 2003-10-16 05:09:04
客户端 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建有唯索引,
请问是什么原因?怎么解决
...全文
27 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
XXSingle 2003-10-23
  • 打赏
  • 举报
回复
uup
wenzheng2k 2003-10-23
  • 打赏
  • 举报
回复
Inkid是那个字段的值?把这个字段添加到IndexFields中
AddIndex('xx',...); IndexName := 'xx';
或者IndexFieldNames := '...'
pianzhouzi 2003-10-23
  • 打赏
  • 举报
回复
up
skypeople 2003-10-21
  • 打赏
  • 举报
回复
操作失败,可能原因,clientDataSet1,No index currently active
原因不是很清楚了吗?在判断的时时候你的CDS是空的!或没有激活,或是没有一个激活的索引字段!
估计达到你的目的完全可以用另外的写法;
billy_zh 2003-10-21
  • 打赏
  • 举报
回复
能否用Locate(id, value, [])?
tanqth 2003-10-21
  • 打赏
  • 举报
回复
我顶
huojiehai 2003-10-17
  • 打赏
  • 举报
回复
要把索引字段添加到IndexFields中
klbt 2003-10-17
  • 打赏
  • 举报
回复
非常困难的问题,帮你顶。

1,178

社区成员

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

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