Migrating from System.Data.SQLite to Devart.Data.SQLite
Posted: Thu 01 Sep 2011 09:10
Hello,
I'm working on a batch read-only multi-threaded application using massively SQLiteDataReader. This application is working fine and very fast using System.Data.SQLite with basic connect String like "Data Source=..." and no optionnal settings. When changing drivers to last version of "dotConnect for Sqlite", keeping exactly the same code, and using 1 thread, the application is running as fine as it was running with System.Data.SQLite drivers.
Problems occurs when using more than 1 thread with dotConnect drivers while it's working fine with many thread and System.Data.SQLite drivers.
The error was still the same and appears randomly :
System.AccessViolationException was unhandled
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=Devart.Data.SQLite
StackTrace:
at Devart.Data.SQLite.bc.sqlite3_column_type(IntPtr A_0, Int32 A_1)
at Devart.Data.SQLite.a3.a(bs A_0, Int32 A_1, SQLiteType& A_2)
at Devart.Data.SQLite.SQLiteDataReader.c(Int32 A_0)
at Devart.Data.SQLite.SQLiteDataReader.GetSQLiteType(Int32 i)
at Devart.Data.SQLite.SQLiteDataReader.GetValue(Int32 i)
at Devart.Common.DbDataReaderBase.get_Item(String name)
...
Any help about this is welcome.
Thx in advance
I'm working on a batch read-only multi-threaded application using massively SQLiteDataReader. This application is working fine and very fast using System.Data.SQLite with basic connect String like "Data Source=..." and no optionnal settings. When changing drivers to last version of "dotConnect for Sqlite", keeping exactly the same code, and using 1 thread, the application is running as fine as it was running with System.Data.SQLite drivers.
Problems occurs when using more than 1 thread with dotConnect drivers while it's working fine with many thread and System.Data.SQLite drivers.
The error was still the same and appears randomly :
System.AccessViolationException was unhandled
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=Devart.Data.SQLite
StackTrace:
at Devart.Data.SQLite.bc.sqlite3_column_type(IntPtr A_0, Int32 A_1)
at Devart.Data.SQLite.a3.a(bs A_0, Int32 A_1, SQLiteType& A_2)
at Devart.Data.SQLite.SQLiteDataReader.c(Int32 A_0)
at Devart.Data.SQLite.SQLiteDataReader.GetSQLiteType(Int32 i)
at Devart.Data.SQLite.SQLiteDataReader.GetValue(Int32 i)
at Devart.Common.DbDataReaderBase.get_Item(String name)
...
Any help about this is welcome.
Thx in advance