In che modo impostare il livello di isolamento delle transazioni su READUNCOMEDED in SQLite?
-
27-10-2019 - |
Domanda
Secondo la risposta su questo inviare afferma:
Sapevi che ReadunCommited tornerà all'isolamento serializzato a meno che tu non abbia abilitato la cache condivisa e entrambe le connessioni provengano dallo stesso thread?
Lavorando in C#, poi sono andato avanti e ho definito un'importazione di DLL come segue:
[DllImport("System.Data.SQLite.dll", CallingConvention=CallingConvention.Cdecl)]
public static extern int sqlite3_enable_shared_cache(int enable);
Ho chiamato questa funzione per abilitare la cache e ho ottenuto uno stato di risultato riuscito di 0 quando chiamato. Tuttavia, ricevo ancora l'eccezione "Isolationlevel", quando eseguono le righe seguenti e si tenta di impostare il livello di isolamento su READUNCOMED.
string connectionString = @"data source=d:\db\test.db3;datetimeformat=Ticks";
SQLiteConnection conn = new SQLiteConnection(connectionString);
conn.Open();
IDbTransaction tran = conn.BeginTransaction(IsolationLevel.ReadUncommitted);
Questa domanda è legata a un'altra domanda che ho pubblicato qui.
Come posso eseguire una query con un livello di isolamento di readuncomitato in sqlite?
Soluzione
Per realizzare letture non impegnate, consulta la seguente domanda e risposta:
Come eseguire la query SQLite con un lettore di dati senza database di bloccaggio?