发这贴之前俺已经对以前有关此题的帖子进行阅读了,但是好多种说话,且各种说话都有各自的好与不好,
且没有绝对肯定是好还是不好。以下是观点是否正确呢?是否有其他补充!请老鸟们来说说下!{使用原生ADO:}
好:速度快,内存占用小。不好:自己封装代码,花多点时间来完善,减少BUG。
{使用Delphi已经封装好的ADO组件}好:方便,更适用于数据绑定。不好:速度慢原生ADO,内存占用大于使用原生ADO。

解决方案 »

  1.   

    我还是使用封装好的ADO组件,为了减少Bug,方便。
      

  2.   

    楼主对两者的区分,也许是大家都比较熟知的,到底用哪个,根据自己的情况而定吧
    Delphi的封装是为了方便用户,方便操作和以后的扩展,经过封装的控件往往添加了许多东西,并不是用户能同时用到的。这样,就扩大了它所占的内存。同样,为了以后扩展,必须考虑类的继承和各种消息的处理;这样就降低速度(引自cmain83)网上有人对两者内存做了一个测试,结果如下原生ADO:100个_Connection,100个_Recordset并打开数据表占11.5mb内存.
    创建及解释对象对ADODB快一倍左右,或者更快.ADODB:100个Connection,100个TADODataSet并打开数据表占22.5mb内存.
    TADODataSet里面有3到4个_Recordset对象,可能性就是吃内存及速度慢在这里罢!
      

  3.   

    首先說說,我覺得你這樣問還會得到一個模棱兩可的結論。 各有各的看法   我的看法吧,像你自己所說的, BORLAND封裝後更容易操作,數據綁定,但你看到裏面數據緩沖即指針的一些操作,占用內存大那是肯定的,但換來的就是
       操作更簡單   原生ADO在一些只取記錄做為一些獨立的操作我覺得你可以用,只要你能控制好的話! 有時候需要頻繁做一些檢索操作,取得某一些字段,某一列的操作,這個時候原生的ADO即占用內存小,速度又快,只能你能控制好,這樣做何樂而不為呢。
      

  4.   

    楼主所谓的原生ADO是指什么?完全用API编程实现操控数据库?
      

  5.   

    因为之前是学VB的,在VB中可以不需要用ADO控件就可以实现操作数据库的。
    我也是菜鸟一只,只是心里对原生的ADO有想法,但不知道怎么跟你说。
    我贴上我正在学习的单元出来。我没有用到封装好的ADO控件。
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, ComCtrls, StdCtrls, ComObj;const
      adOpenStatic = $00000003;
      adLockOptimistic = $00000003;
      adCmdText = $00000001;type
      TForm1 = class(TForm)
        PageControl1: TPageControl;
        TabSheet1: TTabSheet;
        TabSheet2: TTabSheet;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Button4: TButton;
        Button5: TButton;
        Button6: TButton;
        Button7: TButton;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      cn : variant;
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      cn := Createoleobject('ADODB.Connection');
      cn.Open ('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+
               'Data Source=D:\Demo.mdb;Mode=Share Deny None;'+
               'Extended Properties="";Jet OLEDB:System DataBase="";'+
               'Jet OLEDB:Reqistry Path="";Jet OLEDB:DataBase PassWord="123";'+
               'Jet OLEDB:Enqine Partial Bulk Ops=2:Jet OLEDB:Global Bulk Transactions=1;'+
               'Jet OLEDB:New DataBase PassWord="";Jet OLEDB:Create System DataBase=False;'+
               'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;'+
               'Jet OLEDB:SFP=False')
               end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      cn := Createoleobject('ADODB.Connection');
      cn.Activeconnection := cn;
      SQL = 'Select * Form ClassDe'
      cn.open SQL, cn, 1, 1
      {cn.open('Select * From ClassDef', cn, adOpenStatic,
      adlockOptimistic, adcmdText);}
      //FillData;
    end;
    Procedure TForm1.FillData;
    Begin
      //edit1.text := VarToStr(cn.fields)
    End;end.
      

  6.   

    使用Delphi已经封装好的ADO组件
      

  7.   

    在cpu越来越快,内存越来越便宜的今天,这点内存占用不算什么
    换来更高的程序稳定性,更快的开发效率是值得的当时,delphi开发数据库程序好用,也是因为他对ado进行了封装,降低了开发难度。
    事实上,现在主流的开发平台都有相应的对持久化层的封装,例如java平台的hibernate等等。
      

  8.   

    根据自己需求啦
    delphi开发数据库程序好用,也是因为他对ado进行了封装
      

  9.   

    单从COM使用来说用ADO组件较好。
      

  10.   

    delphi开发数据库程序好用,也是因为他对ado进行了封装,降低了开发难度。
      

  11.   

    ADO组件!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!现在区区一点内存已经不重要了,以后内存会越来越大!现在做程序重要的是可维护性和可靠性
    大部分人觉得花1000块买1G的程序比同样功能的100Mb的程序划算
      

  12.   

    好:方便,更适用于数据绑定。不好:速度慢原生ADO,内存占用大于使用原生ADO。
      

  13.   

    这要看实际情况,我以前遇过一个最经典的事件,
    公司原来开发的一套系统,由VB6.0开发(那个年代C#还没在娘胎里的),结果客户部接到个客户是延安的:(
    那里还在用95~98的MS产品,机器配置低的......
    结果是没有办法,重做了一个同样功能的产品由纯C语言编写!!!!
      

  14.   

    我还是使用封装好的ADO组件,为了减少Bug,方便。
      

  15.   

    学习自己开发东西还是好的,但是在真正项目中还是用封装好的比较文档,毕竟没哪么容易出现BUG,当自己技术达到一定境界的时候再考虑用自己的吧