delphi中连接oracle有大量数据要更新,但是一条条更新连接数据库太频繁,而且网络延迟导致速度太慢,希望能够使用cached updates的方法一次更新多条记录,但是又不想用BDE,不知可有其他的办法,给出例子的在加100分。

解决方案 »

  1.   

    ADO就可以啊,它有个批量更新模式,例子你去找李维的一本书吧,
    就是那本很多名的ADO/MTS/COM+那本,,对你会有很大的好处的:)
      

  2.   

    ADO可以呀,我用过的
    Provider=MSDAORA.1;
      

  3.   

    1. 在Ado 面板中 拖动 TAdoConnect 和 TAdoQuery 到窗体中.
    2. 设置TAdoConnect(可以说相当于TDatabase) 或者TAdoQuery(和TQuery类似) 的ConnectString 属性 为:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\dftw\2.0版本\TWDatabase_贵池_2.0.mdb;Persist Security Info=False
    之后, 你就可以通过AdoQuery 使用SQL 语句操作数据了.使用 AdoQuery.SQL.Add() 方法插入SQL 语句. 通过AdoQuery.Open 或者Exec 执行Sql 语句.其他的和BDE类似.
      

  4.   

    我记得有次到马鞍山给客户升级时也碰到过类似的问题.   当时我使用的是ADO, 当时我是使用事务处理来解决这个矛盾的: 每 1000 条做个事务提交过程.  BDE的 cached updates 处理也有点类似这个.
      

  5.   

    使用TAdoConnect 和 TAdoQuery 连接数据库和更新我用的就是,但是每1000条做个提交?怎么做,请大家教我。
      

  6.   

    Oracle 使用 DBX 比ADO性能好。
      

  7.   

    下载DAO控件,
    用DOA构件可以在Delphi或C++Builder开发环境下跳过BDE,
    直接通过SQL Net访问Oracle
      

  8.   

    DBX也好DAO也好ADO也好,不管是什么,我想要知道具体的操作方法,另外我自己也在找,不管那位帮我解决,或者提出具体的建议统统给分。在线等待
      

  9.   

    谢谢大家,问题已经解决了,ADOConnection,ADOTable,DataSetProvider,DataSetProvider,DataSource用多层的方法调用ClientDataSet.ApplyUpdates可以做到,DBX我也试验了,不知那里不对数据更新回数据库时总是更新不了,但是程序又没有错误提示,正在研究中……
      

  10.   

    我觉得要是象Oracle这样的还是DBX最好