![]() |
ADO Datenbank ermitteln
Mit folgenden Funktionen kann der Datenbankhersteller (Access, Oracle, ...) ermittelt werden:
Delphi-Quellcode:
[edit=Matze]Code formatiert. Mfg, Matze[/edit]
uses ADODB;
interface // Typ der Datenbankverbindung feststellen function IsAccessConnection(cn: TADOConnection): Boolean; function IsSQLServerConnection(cn: TADOConnection): Boolean; function IsMySQLConnection(cn: TADOConnection): Boolean; function IsOracleConnection(cn: TADOConnection): Boolean; function IsODBCConnection(cn: TADOConnection): Boolean; type TADOConnectionType = ( ctMSAccess, ctMSSqlServer, ctMySQL, ctOracle, ctUnknown, ctODBC ); function GetADOConnectionType(cn: TADOConnection): TADOConnectionType; implementation uses SysUtils; function PosIgnoreCase(const SubStr, S: string): Integer; begin Result := Pos(UpperCase(SubStr),UpperCase(S)); end; function IsAccessConnection(cn: TADOConnection): Boolean; begin Result := PosIgnoreCase('Microsoft.Jet.OLEDB.',cn.Provider) > 0; end; function IsSQLServerConnection(cn: TADOConnection): Boolean; begin Result := (PosIgnoreCase(\\\'SQLOLEDB\\\',cn.Provider) > 0) or // SQL Native Client von SQL Server 2005 (PosIgnoreCase(\\\'SQLNCLI\\\',cn.Provider) > 0); end; function IsMySQLConnection(cn: TADOConnection): Boolean; begin // Warning !!! untested Result := PosIgnoreCase('MYSQLOLEDB',cn.Provider) > 0; end; function IsOracleConnection(cn: TADOConnection): Boolean; begin // Warning !!! untested Result := PosIgnoreCase('MSDAORA',cn.Provider) > 0; end; function IsODBCConnection(cn: TADOConnection): Boolean; begin Result := PosIgnoreCase('MSDASQL', cn.Provider) > 0; end; function GetADOConnectionType(cn: TADOConnection): TADOConnectionType; begin Result := ctUnknown; if not Assigned(cn) then Exit; if IsAccessConnection(cn) then Result := ctMSAccess else if IsSQLServerConnection(cn) then Result := ctMSSqlServer else if IsMySQLConnection(cn) then Result := ctMySQL else if IsOracleConnection(cn) then Result := ctOracle else if IsODBCConnection(cn) then Result := ctODBC; end; end. [edit=Phoenix]Für shmia Korrektur bzgl. SQL Server 2005 eingefügt. Mfg, Phoenix[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz