如何实现修改dbgrid 数据不同步更新数据库 ( 积分: 200 )

  • 主题发起人 主题发起人 violetxh
  • 开始时间 开始时间
V

violetxh

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个数据库程序用到主从数据表如:
A表: 订单编号 客户姓名 日期
B表: ID 产品名称 单位 单价 数量 合计
“订单编号” 和 “ID” 关联,即一个订单有多个产品
在添加修改订单时产品数据用的是DBGrid,修改DBGrid数据时数据库也发生变化想撤消就不行了。
请问有什么好的办法我想过用一个临时表来处理可以解决问题,但我想找个更好,更效率的办法
另外还有一个问题
我编好的程序打开后为什么工具条上看不到VCLSkin控件,(我安装了VCLSKIN并且重建一个工程可能看到vclskin使用也正常)我双开Delphi一个打开我编好的程序另一个新建一个工程并在上面放一个 SkinData,然后复制“SkinData”到我的工程上出现错误提示“Class TSkinData not found”
哪位高手帮忙解决本人十二分感谢!
例程:ftp://218.90.234.214 user:a pw:a
 
放轩 ADOQuery + DataSetProvider + ClientDataSet + DataSource ,然后将 DataSource.DataSet := ClientDataSet,
ClientDataSet.ProviderName := DataSetProvider,
DataSetProvider.DataSet := ADOQuery
用ClientDataSet.Open,不要用AdoQuery.Open
这样你就可以修改数据而不保存到数据库,如果要提交回数据库,用ClientDataSet.ApplyUpdate就行
 
你做的要是三层的,本身就有数据的缓存机制,要是两层的,你可以设置DateSet的LockType属性为ltBatchOptimistic 然后确定要保存数据的时候用UpdateBatch更新,不用Post
 
这是很简单的事,用数据库的事务处理就行了,想撤消就回滚。
 
你可以设置DateSet的LockType属性为ltBatchOptimistic 然后确定要保存数据的时候用UpdateBatch更新,先不提交到数据库用Post
 
按照frankie_24方法修改后可以解决修改的问题,但同时也带来了一个新问题,再添加明细时无法添加,我把部份程序发到Ftp上请各位高手帮忙,小弟不胜感谢!Ftp地址:
ftp://218.90.234.214 user:a pw:a
请问 levi 如何不通过adoquery添加数据
 
问题已解决,谢谢各位的帮忙!特别感谢 levi, 他的方法帮我解决了问题!
 
问题已解决,谢谢各位的帮忙!特别感谢 levi, 他的方法帮我解决了问题!
 
后退
顶部