Autor Beitrag
delphianer
Hält's aus hier
Beiträge: 7


Delphi5, 7, 2007, XE
BeitragVerfasst: So 13.03.11 13:51 
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:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
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?

Moderiert von user profile iconMartok: Quote- durch Delphi-Tags ersetzt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19339
Erhaltene Danke: 1752

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.03.11 14:17 
Nimm einfach einmal den Process Monitor und schau nach wo die Bibliothek gesucht wird. ;-)

Ich sehe gerade das cx-Prefix bei cxTEServer usw.: Das sind ja vermutlich keine Standardkomponenten, kann es sein, dass es dort ein Problem mit Unicode gibt?