多层Append,为什么没有增加上去?????

saoren 2001-01-09 09:38:00
多层Append,为什么没有增加上去。

with ClientDataset1 do
begin
close;
CommandText:='select * from table';
open;
Append;
fields[0].value:=value0;
...
Post;
ApplyUpdates(-1);
showmessage('append a record successed.');
end;
我还试过:
AppendRecord([value0,value1.....]);
ApplyUpdates(-1);
那表还是没有正常增加上去。怪事。

此段运行正常就是没有增加到Access数据库中。
注:服务端是:ADO+remote data module
ADO的连接应该没有错,它的connectionString我写了函数给它,没有问题,
奇怪,大虾快帮忙
大虾快帮忙
大虾快帮忙
...全文
220 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thinking_man 2001-01-09
  • 打赏
  • 举报
回复
dataset的cacheupdate设置了否?
saoren 2001-01-09
  • 打赏
  • 举报
回复
怎么解决?????
快来啊。
ePing 2001-01-09
  • 打赏
  • 举报
回复
Access是桌面数据库,好像在Sqlserver中没有问题耶
saoren 2001-01-09
  • 打赏
  • 举报
回复
那main select 时还有参数如:
with main do
begin
close;
params.clear;
Params.createParam(ftstring,'value',ptinput);
commandtext:=sqlstring;
params.parambyname('value').value:=value;
open;
end;
saoren 2001-01-09
  • 打赏
  • 举报
回复
各位,错误是:
“Parameters对象被不正确的定义,提供了不一致或不正确的信息。“
源程序差不多是这样的:

main,details,temp:TClientDateSet;
main select 出多表的字段
details不访问它,无关
temp是append;
fields[0].value:=main.fieldbyname('somefield').value;
fields[1].value:=main....
...
fields[6].value:=otherValue;
fields[7].value:=othervalue1;
然后post,applyUpdates(0) or ApplyUpdates(-1)都是出错。
没办法了我,以上的情况我都试了一下,不行。

我这个temp不跟dbgrid1显示出来,它只是作保存用的。如果新建一个工程与那server连
然后连入那个表,append a record不出现错误。
怪也,怪也。

newworld 2001-01-09
  • 打赏
  • 举报
回复
远程数据模块中的datasetprovider的resolvetodatasety属性必须设为false,并且在datasetprovider中拉下option属性,将其中的poallowcommandtext设为true就可以了。
kks 2001-01-09
  • 打赏
  • 举报
回复
你在CLIENTDATASET的OnReconcileError中加一句:
SHOWMESSAGE(E.MESSAGE);
再改applyupdates(0),看看是什么错误。

哦,还有打开SQLMONITOR看看是不是大小写的问题,还有看看PROVIDER是不是设成自动生成sql语句来更新。。。太多可能了

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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