DBXpress dynamisk oprettelse i threads
HejJeg har et projekt hvor jeg migrerer fra ADO til DBX, jeg har nogle threads der udfører noget dataprocessing i baggrunden og de SQL komponenter opretter jeg dynamisk med TThread.Create.
Jeg har et problem med at få initialiseret TSQLConnection rigtigt og jeg bliver ved med at få følgende fejlmeddelse.
DBX Error: Driver could not be properly initialized. Client library may be missing, not installed properly, of the wrong version, or the driver may be missing from the system path.
Når jeg bruger DBX komponenterne på en form er der ingen problemer med at få "connection" til databasen.
Jeg har SQL server nativ client installeret og client library findes kun i en version og i windows\system32.
Under TThread.Create kalder jeg min procedure SetupConnection som ser ca. således ud.
procedure TAlarmScanThr.SetupConnection;
begin
try
FSrcConnection := TSQLConnection.Create(nil);
FSrcConnection.LoginPrompt := False;
FSrcConnection.DriverName := 'MSSQL';
FSrcConnection.BeforeConnect := FSrcConnectionBeforeConnect;
{ dette var bare et forsøg, men det giver samme resultat
with FSrcConnection do
begin
ConnectionName := 'Myconn';
LogMyParams(FSrcConnection);
DriverName := 'MSSQL';
LogMyParams(FSrcConnection);
LibraryName := 'dbxmss.dll';
VendorLib := 'sqlncli10.dll';
GetDriverFunc := 'getSQLDriverMSSQL';
end;
}
spFetchAlarmsInQueueAgg := TSQLStoredProc.Create(nil);
spFetchAlarmsInQueueAgg.SQLConnection := FSrcConnection;
spFetchAlarmsInQueueAgg.StoredProcName := 'AD_FetchAlarmsInQueueAgg';
....
End;
Jeg har prøvet forskellige varianter, hvor jeg loader en ini fil med parametrene til driveren, og jeg kan debugge at de alle kommer ind på FsrcConnection som "jeg forventer" det.
Er der en der er i besiddelse af et demo projekt der bruger threads og DBX eller ved hvad der er årsag til problemet med DBX.
mvh
Henry