unit Main;
{$DEFINE ADOCONNECT}interfaceUses DB, ADODB, Classes, ActiveX;{$I ADO.Inc}Function InitADO( ConnectString : WideString ) : TADOConnect; Stdcall;implementation{ TADOConnect }Constructor TADOConnect.Create( ConnectString : WideString );
begin
     Inherited Create;
     CoInitialize( Nil );
     FConnectString        := ConnectString;
     FADO                  := TADOConnection.Create( Nil );
     FADO.ConnectionString := FConnectString;
     FADO.LoginPrompt      := False;
end;Destructor TADOConnect.Destroy;
Begin
     FADO.Free;
     CoUninitialize;
     Inherited Destroy;
End;Function TADOConnect.Open : Boolean;
Begin
     Try
        FADO.Open;
        Result := True;
     Except
           Result := False;
     End;
End;Function TADOConnect.Close : Boolean;
Begin
     Try
        FADO.Close;
        Result := True;
     Except
           Result := False;
     End;
End;Function TADOConnect.GetConnection : TADOConnection;
Begin
     Result := FADO;
End;Procedure TADOConnect.GetTableNames( Var List : TStringList; IncludeSysTable : Boolean );
Begin
     If FADO.Connected Then FADO.GetTableNames( List, IncludeSysTable );
End;Procedure TADOConnect.GetFieldNames( Const TableName : String; Var List : TStringList );
Begin
     If FADO.Connected Then FADO.GetFieldNames( TableName, List );
End;Procedure TADOConnect.GetProcedureNames( Var List : TStringList );
Begin
     If FADO.Connected Then FADO.GetProcedureNames( List );
End;Function TADOConnect.GetConnectState : Boolean;
Begin
     Result := FADO.Connected;
End;Function InitADO( ConnectString : WideString ) : TADOConnect;
Begin
     Result := TADOConnect.Create( ConnectString );
End;end.文件ADO.Inc:
Type
    TADOConnect = Class( TObject )
    {$IFDEF ADOCONNECT}
    Private
           FConnectString : WideString;
           FADO           : TADOConnection;
    {$ENDIF}
    Public
    {$IFDEF ADOCONNECT}
          Constructor Create( ConnectString : WideString );
          Destructor Destroy; Override;
    {$ENDIF}
          Function  Open : Boolean; Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Function  Close : Boolean; Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Function  GetConnection : TADOConnection; Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Function  GetConnectState : Boolean; Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Procedure GetTableNames( Var List : TStringList; IncludeSysTable : Boolean = False ); Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Procedure GetFieldNames( Const TableName : String; Var List : TStringList ); Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
          Procedure GetProcedureNames( Var List : TStringList ); Virtual; Stdcall; {$IFNDEF ADOCONNECT} Abstract; {$ENDIF}
    End;
参考这个例子,不要照抄!!!可能有错误!!!