{\r
base.Dispose(disposing);\r
\r
+ if (_sql != null)\r
+ _sql.Dispose ();\r
+\r
if (disposing)\r
Close();\r
}\r
\r
SQLiteOpenFlagsEnum flags = SQLiteOpenFlagsEnum.None;\r
\r
- if (SqliteConvert.ToBoolean(FindKey(opts, "FailIfMissing", Boolean.FalseString)) == false)\r
- flags |= SQLiteOpenFlagsEnum.Create;\r
-\r
if (SqliteConvert.ToBoolean(FindKey(opts, "Read Only", Boolean.FalseString)) == true)\r
flags |= SQLiteOpenFlagsEnum.ReadOnly;\r
- else\r
+ else {\r
flags |= SQLiteOpenFlagsEnum.ReadWrite;\r
-\r
+ if (SqliteConvert.ToBoolean(FindKey(opts, "FailIfMissing", Boolean.FalseString)) == false)\r
+ flags |= SQLiteOpenFlagsEnum.Create;\r
+ }\r
+ if (SqliteConvert.ToBoolean (FindKey (opts, "FileProtectionComplete", Boolean.FalseString)))\r
+ flags |= SQLiteOpenFlagsEnum.FileProtectionComplete;\r
+ if (SqliteConvert.ToBoolean (FindKey (opts, "FileProtectionCompleteUnlessOpen", Boolean.FalseString)))\r
+ flags |= SQLiteOpenFlagsEnum.FileProtectionCompleteUnlessOpen;\r
+ if (SqliteConvert.ToBoolean (FindKey (opts, "FileProtectionCompleteUntilFirstUserAuthentication", Boolean.FalseString)))\r
+ flags |= SQLiteOpenFlagsEnum.FileProtectionCompleteUntilFirstUserAuthentication;\r
+ if (SqliteConvert.ToBoolean (FindKey (opts, "FileProtectionNone", Boolean.FalseString)))\r
+ flags |= SQLiteOpenFlagsEnum.FileProtectionNone;\r
+ \r
+ \r
_sql.Open(fileName, flags, maxPoolSize, usePooling);\r
\r
_binaryGuid = (SqliteConvert.ToBoolean(FindKey(opts, "BinaryGUID", Boolean.TrueString)) == true);\r
while (rdIndexes.Read())\r
{\r
if (rdIndexes.IsDBNull(4) == false)\r
+ {\r
row["INDEX_DEFINITION"] = rdIndexes.GetString(4);\r
- break;\r
+ break;\r
+ }\r
}\r
}\r
\r
{\r
_rollbackHandler(this, EventArgs.Empty);\r
}\r
+\r
+ // http://www.sqlite.org/c3ref/config.html\r
+ public static void SetConfig (SQLiteConfig config)\r
+ {\r
+ int n = UnsafeNativeMethods.sqlite3_config (config);\r
+ if (n > 0) throw new SqliteException (n, null);\r
+ }\r
}\r
\r
/// <summary>\r