I think there is a memory leak in the dbexpsda30.dll driver. The info to back that up is:
After one day with the crlab driver (i e, 10 000 - 30 000 questions to the db), our application eats approx 65 MB of memory and 60 MB of VM according to the task manager, and it keeps rising. If we switch driver to the Borland one, the application allocates approx 20 MB of memory and 20 MB of VM regardles of the time run.
I have also monitored GetHeapStatus, but it is not rising. The total memory allocated (HeapStatus.TotalAddrSpace) is approx 5 MB regardless of driver.
This is the relevant code section:
Code: Select all
// Borland driver
(* Result.DriverName := 'MSSQL';
Result.LibraryName := 'dbxmss30.dll'; // Delphi 2006
Result.VendorLib := 'oledb';
Result.GetDriverFunc := 'getSQLDriverMSSQL'; *)
// Corelab driver
Result.DriverName := 'SQLServer';
Result.LibraryName := 'dbexpsda30.dll';
Result.VendorLib := 'sqloledb.dll';
Result.GetDriverFunc := 'getSQLDriverSQLServer';
File version of dbexpsda30.dll: 3.10.8.0, according to readme.txt this is 3.20.
Delphi 2006 Update pack 2.
SQLOleDB.DLL is version 2000.86.1830.0, running against a SQL Server 2005 database.