开发过 ADO+ORACLE的高手请进来

must0001 2008-12-17 06:30:02
我用TADOCONNECTION 建了一个链接:
ADOConnection1.ConnectionString:='PLSQLRSet=1;Provider=OraOLEDB.Oracle;Password=tiger;Persist Security Info=True;User ID=scott;Data Source=fjddmis;Extended Properties=""';
ADOConnection1.Open;
建立ADODataSet1
ADODataSet1.Connection:=ADOConnection1;
ADODataSet1.CommandText:='SELECT * FROM scott.emp';
ADODataSet1.CommandType:=cmdText;
ADODataSet1.Open;
绑定数据源和数据表后,
运行,在表格中更新任何字段的数据后,不需要提交,数据直接写入ORACLE的数据库了,我记得之前开发基于SQL SERVER数据库的时候,需要执行数据集UpdateBatch方法后,数据才提交,为啥ORACLE的不是这样?还是我啥属性设置的不对?赐教……
...全文
117 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
must0001 2008-12-19
  • 打赏
  • 举报
回复
1年没用过DELPHI了,这么重要的属性都给忘了,愧对我5个三角
starluck 2008-12-18
  • 打赏
  • 举报
回复
把數據集的數據提交方式改為緩存更新,不然你對數據感應控件的數據修改是改變後即修改數據庫的數據的。

ADODataSet1.LockType=ltBatchOptimistic;


使用緩存更新後,提交可翠這樣:



if adoDataSet1.stata in [dsinsert,dsEdit] then AdoDataset1.post;

adoDataSet1.UpdateBatch; // 將緩存的數據全部提交到數據庫
火龙岛主 2008-12-18
  • 打赏
  • 举报
回复
跟与什么数据库连接没有直接关系,使用ado的话就需要使用
ADODataSet1.LockType := ltBatchOptimistic;
才能批量更新。
gwhdaxia 2008-12-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mjtalhx 的回复:]
在AdoDataSet.LockType= ltBatchOptimistic 模式下,
AdoDataSet.post并不提交数据到数据库,
只有在AdoDataSet.UpdateBatch()下,才正式提交数据库
[/Quote]

要把缓存更新打开才行,不然操作的都是本地的数据集,而没有提交到数据库
mjtalhx 2008-12-17
  • 打赏
  • 举报
回复
在AdoDataSet.LockType= ltBatchOptimistic 模式下,
AdoDataSet.post并不提交数据到数据库,
只有在AdoDataSet.UpdateBatch()下,才正式提交数据库
僵哥 2008-12-17
  • 打赏
  • 举报
回复
ADODataSet1.LockType=ltBatchOptimistic;

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧