关于三层更新的问题(50分)

  • 主题发起人 主题发起人 fstao
  • 开始时间 开始时间
F

fstao

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库mssql7,前端是delphi5。我用DCOM连接。
中间服务器添加Tquery和TDataSetProvider,
Tquery的sql为:“SELECT id, bm, lb_id, hpmc, xhgg, dw, sign, memo
FROM dbo.hp_ku Dbo_hp_ku” ,TDataSetProvider的Dataset为:query1。
客户端:添加TClientDataSet,ProviderName为:Datasetprovider1,
在button1的onclick事件为:
clientdataset1.insert;
button2的onclick事件为:
clientdataset1.applyupdates(0);

运行时,按button1,在表格添加一些数据,然后按button2,在表格已经显示刚添加的
数据,但我关闭Tform,然后再运行它,发现表格上根本没有更新刚才添加的数据,表格空白。
这是为何?我就是这样做也不行的:
clientdataset1.applyupdates(-1);

 
在insert后加ClientDataset1.post;
 

同病相怜。
我今早也遇这种问题,(但我用的仅是 Table 而已 >:(((( )
后来将 Table 删除,
然后再将 Table 放置上去,所有的设置一模一样,就没问题了。

你不妨也先删除再.....试一下
 

以前碰到过这个问题。

重做应用服务器(中间层)当然还是要注册一次。保证成功。
 
我的做法:

数据库mssql7,前端是delphi5。我用DCOM连接,连接数据库用BDE。
中间服务器添加Tquery和TDataSetProvider,Tdatabase的属性
Translsoloation=tiReadCommitted。Tquery的sql为:
“SELECT id, bm, lb_id, hpmc, xhgg, dw, sign, memo
FROM dbo.hp_ku Dbo_hp_ku” ,TDataSetProvider的Dataset为:query1。
客户端:添加TClientDataSet,ProviderName为:Datasetprovider1,
在button1的onclick事件为:
clientdataset1.insert;
button2的onclick事件为:
clientdataset1.applyupdates(-1);


运行时,按button1,在表格添加一些数据,然后按button2,在表格已经显示刚添加的
数据,但我关闭Tform,然后再运行它,发现表格上根本没有更新刚才添加的数据,表格
空白。

后来我在中间服务器的TDatabase的属性Translsoloation=tiRepeatableRead,这样就会
更新数据了。这时第一个表可以更新数据,第二个表也可以更新数据,但第三个表以后就
不能更新数据了(我指的是TClientDataset.applyupdates(-1)),为什么为这样的?第三、
四个表都是单表,和第一、二个表的结构都差不多的,为什么不能更新数据?不明白。我
搞了几天,也反复检查,没有发现第三、四个表和第一、二个表没有什么不妥。
 
我是在Win2000专业版+mssql7 Destop版
 
多人接受答案了。
 
后退
顶部