发这贴之前俺已经对以前有关此题的帖子进行阅读了,但是好多种说话,且各种说话都有各自的好与不好,
且没有绝对肯定是好还是不好。以下是观点是否正确呢?是否有其他补充!请老鸟们来说说下!{使用原生ADO:}
好:速度快,内存占用小。不好:自己封装代码,花多点时间来完善,减少BUG。
{使用Delphi已经封装好的ADO组件}好:方便,更适用于数据绑定。不好:速度慢原生ADO,内存占用大于使用原生ADO。
且没有绝对肯定是好还是不好。以下是观点是否正确呢?是否有其他补充!请老鸟们来说说下!{使用原生ADO:}
好:速度快,内存占用小。不好:自己封装代码,花多点时间来完善,减少BUG。
{使用Delphi已经封装好的ADO组件}好:方便,更适用于数据绑定。不好:速度慢原生ADO,内存占用大于使用原生ADO。
Delphi的封装是为了方便用户,方便操作和以后的扩展,经过封装的控件往往添加了许多东西,并不是用户能同时用到的。这样,就扩大了它所占的内存。同样,为了以后扩展,必须考虑类的继承和各种消息的处理;这样就降低速度(引自cmain83)网上有人对两者内存做了一个测试,结果如下原生ADO:100个_Connection,100个_Recordset并打开数据表占11.5mb内存.
创建及解释对象对ADODB快一倍左右,或者更快.ADODB:100个Connection,100个TADODataSet并打开数据表占22.5mb内存.
TADODataSet里面有3到4个_Recordset对象,可能性就是吃内存及速度慢在这里罢!
操作更簡單 原生ADO在一些只取記錄做為一些獨立的操作我覺得你可以用,只要你能控制好的話! 有時候需要頻繁做一些檢索操作,取得某一些字段,某一列的操作,這個時候原生的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.
换来更高的程序稳定性,更快的开发效率是值得的当时,delphi开发数据库程序好用,也是因为他对ado进行了封装,降低了开发难度。
事实上,现在主流的开发平台都有相应的对持久化层的封装,例如java平台的hibernate等等。
delphi开发数据库程序好用,也是因为他对ado进行了封装
大部分人觉得花1000块买1G的程序比同样功能的100Mb的程序划算
公司原来开发的一套系统,由VB6.0开发(那个年代C#还没在娘胎里的),结果客户部接到个客户是延安的:(
那里还在用95~98的MS产品,机器配置低的......
结果是没有办法,重做了一个同样功能的产品由纯C语言编写!!!!