关于clientdataset,高手,help!(100分)

  • 主题发起人 主题发起人 nikue
  • 开始时间 开始时间
N

nikue

Unregistered / Unconfirmed
GUEST, unregistred user!
我将一个数据库clientdataset中的数据savetofile(aa.xml),
然后连接另一个数据库loadfromfile(aa.xml),applyupdates(0),
运行之后没有出错,
但不止为什么不能保存过去。
谢谢!
 
可能他记录了你的来源是从文件,而又没有改动记录,所以applyupdates 无效了
 
应指明路径
 
等了一天总算有人。。。哎
to 生命之歌:那该怎么做?
to lcl800 是什么意思?
 
不知道是此地无人?问题太简单?还是没有说清楚,怎么就是没有反应咧?
斑竹应该是高手吧,就帮我一下咯,
我的代码:
clientdataset.loadfromfile('c:/aa.xml');
clientdataset。applyupdates(0);
但是没有用的,用ado连接,
我调试,发现clientdataset在loadfromfile之前和之后的commandtext都没有变。
changcount也是0,但recordcount从0变到3000(即aa.xml中的记录数),
是我的方法不对还是有别的方法,是高手就995咯,我一定给分

 
savetofile(aa.xml) 中的aa.xml必须指明路径如c:/aa.xml
上述代码改称
savetofile('c:/aa.xml'),
loadfromfile('c:/aa.xml')肯定是正确的,不过不知道数据是否保存在服务器上。
不指明路径,文件没有保存在当前目录下
 
recordcount从0变到3000
说明已经load正确了,
其他相关参数没变,可能是数据没有刷新。
 
如果是同时连接两个数据库,可以用两个clientdataset测试一下,有时候在同一个
clientdataset连接多个库,要出问题,就如你上面所说,数据不能更新。更新时发生冲突?
 
知道你的意思,大概是将另一数据库的数据转到本数据库来,
这有一点小技巧
1,保证你现有clientdataset正确连接到数据库,commnadtext设置正确,
假设为clientdataset1,
2,另加一个clientdataset,用它loadfromfile('c:/aa.xml');
假设为clientdataset2,并打开。
3. clientdataset1.delta=clientdataset.data;
如果delta不能赋值,就只能一条记录一条记录的插入,不过也很简单,
两个循环就搞定。
 
我能试的方法都试了,
用了两个clientdataset,
都跟踪过,load数据是没有问题的,
但就是没有反应的,不过我分析没有反映是对的,
因为changcount=0,
说明结果集没有变化(但为什么recordcount会从0增加到3000呢?这不叫变化吗?)
applyupdates(0)当然不会有结果,是不是我有什么参数没有设对呢,我不知道?
to myname :不知你说的一条一条的插入是如何实现的,
我现在差不多就是这样做的,但是是一个字段字段的复制,
很慢的,3000条记录差不多花了4分钟!
先谢谢各位了,希望我明天能找到答案!

 
当一个clientdataset用loadfromfile时,它就默认为一个文件型数据库,
由于文件中的数据并未改变,所以虽然记录到了3000,但changecount还是为0,
也不可能更新到远程数据库中,只有用另一个clientdataset读取数据,再转过来
我查了一下,delta是只读,就只有插入了,没办法,时间是长点,谁叫你有
3000条记录呢。
 
多人接受答案了。
 
后退
顶部