Mit folgenden Funktionen kann der Datenbankhersteller (Access, Oracle, ...) ermittelt werden:
Code
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;implementationuses 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.
mfg Icewarez
[/quote][quote='Icewarez','https://gfx-forum.de/new/thread/?postID=135#post135']
Mit folgenden Funktionen kann der Datenbankhersteller (Access, Oracle, ...) ermittelt werden:
Code
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.
Alles anzeigen