我使用
DBGird.DataSoure.ClientDataSet.TDataSetProvider.ADODataSet.ADOConnection想实现 在DBGird里面输入数据,可以多条。输入每条后不是马上更新到数据库,输入完成按btn按钮全部记录提交到数据库。其中DBGird录入的不是全部字段,某个字段如No,是读取的某个edit的值。如表4个字段 No1 No2 No3 No;DBGird只显示或输入No1 No2 No3;
而No4:=Edit.Text
-----------
不知道问题描述清楚,对数据库编程不熟,查了些资料,把ADODataSet的LockType=ltBatchOptimistic分别在 ClientDataSet.beforePost或AdoDataSet.beforePost或ClientDataSet.BeforeApplyUpdates对No赋值都有错。搞了半天头有点昏,请大家指点下!
DBGird.DataSoure.ClientDataSet.TDataSetProvider.ADODataSet.ADOConnection想实现 在DBGird里面输入数据,可以多条。输入每条后不是马上更新到数据库,输入完成按btn按钮全部记录提交到数据库。其中DBGird录入的不是全部字段,某个字段如No,是读取的某个edit的值。如表4个字段 No1 No2 No3 No;DBGird只显示或输入No1 No2 No3;
而No4:=Edit.Text
-----------
不知道问题描述清楚,对数据库编程不熟,查了些资料,把ADODataSet的LockType=ltBatchOptimistic分别在 ClientDataSet.beforePost或AdoDataSet.beforePost或ClientDataSet.BeforeApplyUpdates对No赋值都有错。搞了半天头有点昏,请大家指点下!
解决方案 »
- 如何将TList的值赋给一个variant变量?
- 请问在TStringGrid中可以加入复选框么?DevExpress的cxGrid是不是只能用于数据库啊?
- 请问向导型窗体是如何产生的?
- 2个问题关于(子窗体的
- 大家进来看看,我写了一个简单的带一个参数的存储过程,现在要用ADOStoredProc调用这个过程
- delphi6的奇怪问题(急阿)?
- 请问如何清除键盘缓冲区?
- 在窗体上置控件speedbutton和panel,怎样实现将鼠标移上speedbutton时panel显示,鼠标离开speedbutton时panel隐藏?
- delphi 代码的编写```
- 什么方法可以用程序实现向搜索引擎发送搜索命令?
- 怎样用BDE连接ORACLE(一台机器上装了两个ORACLE客户端)
- 关于delphi xe5 重载的疑惑
优点:减少网络负载,因为他把用户更新的数据全部放在缓存,当用户要更新的时候再一次性提交
缺点:必须编写足够多的错误处理代码进入batchupdate模式比如设定:
cursortype为keyset或static
locktype为batchoptimistic
执行的sql命令必须是select.
Cursorlocation为cluseclient.Datamodule2.adodataset1.updatebatch 更新数据
datamodule2.ADODataSet1.CancelBatch;取消更新
我是按你说的那样设定的,但是我主要是在提交数据时不知道怎么处理多条记录的某个字段的值, 在更新数据之前如何对整列字段重新赋值呢?
我试了在beforePost里写代码 dataset.FieldByName().AsString:=edit.text;
不能实现!
ClientDataSet.ApplyUpdates(0)
clientdataset.applyupdate(-1)//保存到后台数据库;