delhi自带的ado和SDAC控件那个快?我没有只设置基本的, 然后查询, ADO比较SDAC快.
我的中间层KBMMW使用ADO测试的时候28小时后自杀了,在管理器里面连尸体都找不到阿,看WINDOWS的日志才发现是------------
事件類型: 資訊
事件來源: DrWatson
事件類別目錄: 無
事件識別碼: 4097
日期: 2007/01/18
時間: 16:21:35
使用者: N/A
電腦: FTEGDN08
描述:
應用程式  產生一應用程式錯誤 此錯誤發生於 01/18/2007 @ 16:21:34.953 所產生的例外為 c0000025 於位址 77FACC94 (RtlTraceDatabaseEnumerate)-------------------然后就想换ADO访问控件试试,但比较自带的ADO和SDAC速度,ADO快点, 在2十万的时候更明显朋友们有没有这方面的经验?求教

解决方案 »

  1.   

    晕,也有人说大数据量的时候用SDAC快,你是怎么测试的?
      

  2.   

    //---------------------很简单的, 没有设置其它属性, 我下载的时候看, 也是说非常快,小数量的时候的确有时比较快, 但大数据的时候在我的机器上比较ADO慢
    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, DB, Grids, DBGrids, MemDS, DBAccess, MSAccess, SdacVcl,
      ADODB;type
      TForm2 = class(TForm)
        MSConnectDialog1: TMSConnectDialog;
        MSConnection1: TMSConnection;
        MSQuery1: TMSQuery;
        ds1: TDataSource;
        btn1: TButton;
        edt1: TEdit;
        btn2: TButton;
        con1: TADOConnection;
        qry1: TADOQuery;
        dbgrd1: TDBGrid;
        procedure btn1Click(Sender: TObject);
        procedure btn2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}procedure TForm2.btn1Click(Sender: TObject);
    begin
      with msquery1 do
      begin
        Close;
        SQL.Text := edt1.Text;
        tag := gettickcount;
        Open;
        tag := gettickcount - tag;
        text := inttostr(tag div 1000) ;
        ds1.DataSet := msquery1;
      end;
    end;procedure TForm2.btn2Click(Sender: TObject);
    begin
      with qry1 do
      begin
        Close;
        SQL.Text := edt1.Text;
        tag := gettickcount;
        Open;
        tag := gettickcount - tag;
        text := inttostr(tag div 1000) ;
        ds1.DataSet := qry1;
      end;
    end;end.
    //--------------------------------------------------------------------------
    object Form2: TForm2
      Left = 267
      Top = 110
      Width = 870
      Height = 640
      Caption = 'Form2'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object btn1: TButton
        Left = 72
        Top = 128
        Width = 75
        Height = 25
        Caption = 'btn1'
        TabOrder = 0
        OnClick = btn1Click
      end
      object edt1: TEdit
        Left = 80
        Top = 160
        Width = 745
        Height = 21
        TabOrder = 1
        Text = 'select top 10000 * from dbilldata'
      end
      object btn2: TButton
        Left = 80
        Top = 200
        Width = 75
        Height = 25
        Caption = 'btn2'
        TabOrder = 2
        OnClick = btn2Click
      end
      object dbgrd1: TDBGrid
        Left = 272
        Top = 264
        Width = 320
        Height = 120
        DataSource = ds1
        TabOrder = 3
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
      end
      object MSConnectDialog1: TMSConnectDialog
        Caption = 'Connect'
        UsernameLabel = 'User Name'
        PasswordLabel = 'Password'
        ServerLabel = 'Server'
        ConnectButton = 'Connect'
        CancelButton = 'Cancel'
        Left = 280
        Top = 96
      end
      object MSConnection1: TMSConnection
        Database = '0300'
        Authentication = auServer
        Pooling = True
        Username = 'E3'
        Password = 'ftegmm'
        Server = '192.168.11.234'
        ConnectDialog = MSConnectDialog1
        Left = 176
        Top = 88
      end
      object MSQuery1: TMSQuery
        Connection = MSConnection1
        Left = 496
        Top = 176
      end
      object ds1: TDataSource
        DataSet = MSQuery1
        Left = 312
        Top = 320
      end
      object con1: TADOConnection
        ConnectionString = 
          'Provider=SQLOLEDB.1;Password=ftegmm;Persist Security Info=True;U' +
          'ser ID=e3;Initial Catalog=0300;Data Source=192.168.11.234'
        LoginPrompt = False
        Provider = 'SQLOLEDB.1'
        Left = 160
        Top = 360
      end
      object qry1: TADOQuery
        Connection = con1
        Parameters = <>
        Left = 136
        Top = 304
      end
    end
      

  3.   

    有空我也试试,不过看SDAC的说明应该比ADO的效率高才对
      

  4.   

    三层的用BDE快很多。我们公司的货代系统就是这样开发的。ADO在三层里不怎么好使,在二层里还不错。
      

  5.   

    BDE需要安装驱动阿,每个中间层都带一个包出去.....SDAC没有源码,有问题怎么办阿使用kbmmw的ADOX访问的时候还发现adodb.pas在填参数的时候中文有点问题,还好已经有人解决了RtlTraceDatabaseEnumerate 这个问题查询后大部分都是说mdac要更新, 更新后测试没有出现过,这问题, 但不确定已经解决....
      

  6.   

    基本上MDAD更新到2.8以后基本上就没有什么问题了的。
      

  7.   

    用过kbmmw或者sdac的说说感受阿, 以后其它人不用走弯路~~
      

  8.   

    个人测试kbmmw比midas快和稳定~~
    价格4000RBM左右(499$)
      

  9.   

    KBMMW 企业版2.61,支持PHP,Java,Delphi,IsAPI,.Net等一切常用的开发环境。一般可以支持1000多个客户端同时并发,速度是其他三层工具的3-6倍有需要联系我。QQ:188368090