Hallo miteinander,
ich befinde mich wahrscheinlich auf einem Holzpfad.
Ich bin vor kurzem mit dem Projekt von Delphi 2007 nach Delphi XE umgezogen. Vor dem Umzug hatte ich keine Probleme eine flexible Verbindung zum
SQL-Server aufzubauen. Seit der Umstellung funktioniert es jedoch nicht mehr. Befinde ich mich in der
IDE kann ich ohne Probleme Connected auf True setzen und bin auch dann mit der Datenbank verbunden.
Zur Laufzeit jedoch klappt es nicht, sondern es kommt die Meldung, dass die Library nicht geladen werden konnte.
Ziel:
Ich versuche mich mit einer Datenbank zu verbinden, die der Nutzer definieren kann durch den Dialog "DBConnect".
Event BeforeConnect:
Delphi-Quellcode:
PROCEDURE TDMPCCDB.SQLCBeforeConnect(Sender: TObject);
BEGIN
IF DBConnect.Execute
THEN BEGIN
SQLC.Params.Clear;
SQLC.Params.Append('
SchemaOverride=%.dbo');
SQLC.Params.Append('
DriverUnit=DBXMSSQL');
SQLC.Params.Append('
DriverPackageLoader=TDBXDynalinkDriverLoader,DBXCommonDriver150.bpl');
SQLC.Params.Append('
DriverAssemblyLoader=Borland.Data.TDBXDynalinkDriverLoader,Borland.Data.DbxCommonDriver,Version=15.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b');
SQLC.Params.Append('
MetaDataPackageLoader=TDBXMsSqlMetaDataCommandFactory,DbxMSSQLDriver150.bpl');
SQLC.Params.Append('
MetaDataAssemblyLoader=Borland.Data.TDBXMsSqlMetaDataCommandFactory,Borland.Data.DbxMSSQLDriver,Version=15.0.0.0,Culture=neutral,PublicKeyToken=91d62ebb5b0d1b1b');
SQLC.Params.Append('
GetDriverFunc=getSQLDriverMSSQL');
SQLC.Params.Append('
LibraryName=dbxmss.dll');
SQLC.Params.Append('
VendorLib=sqlncli10.dll');
SQLC.Params.Append('
MaxBlobSize=-1');
SQLC.Params.Append('
LocaleCode=0000');
SQLC.Params.Append('
IsolationLevel=ReadCommitted');
SQLC.Params.Append('
PrepareSQL=True');
SQLC.Params.Append('
Prepare SQL=False');
SQLC.Params.Append('
BlobSize=-1');
SQLC.Params.Append('
ErrorResourceFile=');
SQLC.Params.Append('
DelegateConnection=DBXPool');
SQLC.Params.Append('
DBXPool.MaxConnections=20');
SQLC.Params.Append('
DBXPool.MinConnections=1');
SQLC.Params.Append('
DBXPool.ConnectTimeout=1000');
SQLC.Params.Append('
DBXPool.DriverUnit=DBXPool');
SQLC.Params.Append('
DBXPool.DelegateDriver=True');
SQLC.Params.Append('
DBXPool.DriverName=DBXPool');
IF DBConnect.cxRBWindows.Checked
THEN SQLC.Params.Append('
OS Authentication=True')
ELSE SQLC.Params.Append('
OS Authentication=False');
SQLC.Params.Append('
HostName=' + DBConnect.cxTEServer.Text);
SQLC.Params.Append('
Database=' + DBConnect.cxTEDatabase.Text);
SQLC.Params.Append('
User_Name=' + DBConnect.cxTEUser.Text);
SQLC.Params.Append('
Password=' + DBConnect.cxTEPassword.Text);
END;
END;
Bereits getane Schritte:
- neue DBX-Dlls aus BIN in den Projektordner kopiert
- neue DBX-Dlls aus BIN nach SYSTEM32 kopiert
- native Client von MS
SQL installiert
Hat jemand eine Idee?