Intraweb中CDS数据库的刷新问题

本人初学intraweb,当然也是初学Borland Delphi。

基本条件是:Borland Delphi 7 Enterprise + Intraweb 7.0.20。

在实践中,我发现:Borland提供了一种文件型的数据库cds,首先按照Demos的例子,发现:使用DBNavigater,对数据库进行操作后,无论是使用+(增加)、-(删除)、Edit后,使用post提交后,界面上的DBGrid显示记录已经被操作了,但是重新开一个Web界面看的时候,还是原来的数据,并没有改变实际的数据库内容。而且,在关闭了后台的Application Server之后,重新打开Server,再用Web查看的时候,数据也没有改变。

经过了仔细的分析,判断是数据在内存中,并没有被刷新到数据库中,经过查找资料,解决了该问题。

Data access和DBexpress中的Client datasets和simpledataset能操作文件型数据cds,在实际的操作过程中,利用Navgater操作的编辑、删除、增加的数据都反映到了内存中,如果不用内存直接刷新到dataset中,可以使用dataset.logchanges=false直接更新dataset中的数据,但是还是没有将数据保存到cds数据库中,此时可以使用dataset.savetofile存储到指定的文件中。如果在打开的dataset中指定了特定的filename,也可以使用dataset.close来保存到文件中。

关键是在实现intraweb application过程中,dataset.close的执行一般是在窗体被destroy之后,但是web browser中却没有提供类似的功能,可以采用dataset的afterpose和afterdelete的events来响应,直接将变更的数据存储到文件数据库中,即首先close再重新loadfromfile就OK了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值