From 138405524556e19a60c21574443ed44e650771bc Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Wed, 3 Feb 2010 11:38:18 +0100 Subject: [PATCH] Aggiunto locking al database per evitare scritture contemporanee. --- GlobalConfig.cs | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/GlobalConfig.cs b/GlobalConfig.cs index 79088b1..b6566c4 100644 --- a/GlobalConfig.cs +++ b/GlobalConfig.cs @@ -40,18 +40,23 @@ namespace Dizzy public void InsertValue(string field, string val) { - SQLiteCommand sqlCmd; + lock (this) + { - this.conn.Open (); - sqlCmd = this.conn.CreateCommand (); + SQLiteCommand sqlCmd; - sqlCmd.CommandText = "INSERT OR REPLACE INTO config VALUES ('" + field + "', '" + val + "');"; - sqlCmd.ExecuteNonQuery (); - this.conn.Close (); + this.conn.Open (); + sqlCmd = this.conn.CreateCommand (); + + sqlCmd.CommandText = "INSERT OR REPLACE INTO config VALUES ('" + field + "', '" + val + "');"; + sqlCmd.ExecuteNonQuery (); + this.conn.Close (); + } } protected void Init () { + SQLiteCommand sqlCmd; this.conn.Open (); sqlCmd = this.conn.CreateCommand (); @@ -66,25 +71,29 @@ namespace Dizzy } else this.conn.Close (); - } + + } protected void InitialSetup () { - // Dobbiamo creare la struttura del database - SQLiteCommand sqlCmd; - this.conn.Open (); - - // Tabelle delle configurazioni - sqlCmd = this.conn.CreateCommand (); - sqlCmd.CommandText = "CREATE TABLE config (field TEXT, value TEXT);"; - sqlCmd.ExecuteNonQuery (); - - // Tabella della lista - sqlCmd = this.conn.CreateCommand (); - sqlCmd.CommandText = "CREATE TABLE list (path TEXT, user TEXT);"; - sqlCmd.ExecuteNonQuery (); - - this.conn.Close (); + lock (this) + { + // Dobbiamo creare la struttura del database + SQLiteCommand sqlCmd; + this.conn.Open (); + + // Tabelle delle configurazioni + sqlCmd = this.conn.CreateCommand (); + sqlCmd.CommandText = "CREATE TABLE config (field TEXT, value TEXT);"; + sqlCmd.ExecuteNonQuery (); + + // Tabella della lista + sqlCmd = this.conn.CreateCommand (); + sqlCmd.CommandText = "CREATE TABLE list (path TEXT, user TEXT);"; + sqlCmd.ExecuteNonQuery (); + + this.conn.Close (); + } } protected string DataBaseName () -- 2.1.4