我程序是c/s结构的,后台用的是sql server。我的一个录入界面上使用了两个TAdoQuery组件做为一对多录入的一方和多方,一方用的是dbedit,多方用的是dbgrid,现在我想自己控制修改,新增,删除等操作,但要求要有明确的触发才能进行相应操作,如保存必须要点击了保存按钮,而且前台数据符合要求才可以保存。我个人认为这可能要将前台数据加以缓冲,对事务要进行相应的commit及roolback操作,但是不知道在delphi中如何进行相应的操作才能加以实现。
(之所以用Tadoqery是因为我的表传到前台有参数限制,而且一方和多方都是多表连接形式的。)
(之所以用Tadoqery是因为我的表传到前台有参数限制,而且一方和多方都是多表连接形式的。)
CursorLocation := clUseClient;
CursorType := ctStatic;
LockType := ltBatchOptimistic;ADOQuery1.UpdateBatch(arAll);ADOQuery1.CancelBatch(arAll);
我的数据集中有些数据要更新,有些只是为了连接上给用户显示的基础数据,用了updatbatch后,是不是所有都会更新?前台delphi是在那里设置key的,更新依据是delphi自己管理的吗?
另:
你看一下 TADOQuery 有没有 ChangedCount/ChangeCount属性?
有的话,可以通过该属性判断是否做过修改,以决定要不要保存或更新
,这样的话,我的自增字段的值什么时候会产生呢?
1、怎样保证如果主表或从表有任一方出问题,所有事务都roolback
2、怎样保证我从取值到完成回写这段时间内没有别的用户新增记录。