public SqliteStatement(ISqlite3 sqlite3, IntPtr database, string sql) { _database = database; _sqlite3 = sqlite3; Sql = sql; var result = _sqlite3.PrepareV2( _database, sql, -1, out _statement, IntPtr.Zero); try { ThrowOnError(result); } catch { if (_statement.IsValid()) { _sqlite3.Finalize(_statement); } throw; } }
public SqliteReader( ISqlite3 sqlite3, IntPtr database, IntPtr statement, bool ownsStatement) { _sqlite3 = sqlite3; _database = database; _statement = statement; _ownsStatement = ownsStatement; }
public static void ThrowOnError( this ISqlite3 sqlite3, IntPtr database, int result) { if (result != SqliteResult.Ok) { throw new SqliteException( sqlite3.Errmsg(database) ?? string.Empty, sqlite3.GetError(result)); } }
private SqliteDatabase(ISqlite3 sqlite3, string path, SqliteOpen flags) { _sqlite3 = sqlite3; var result = _sqlite3.OpenV2(path, out _database, (int)flags, null); if (result != SqliteResult.Ok) { var message = $"Unable to open " + path + "."; if (_database.IsValid()) { var errorMessage = _sqlite3.Errmsg(_database); _sqlite3.Close(_database); } throw new SqliteException(message, sqlite3.GetError(result)); } Path = path; }
public static SqliteDatabase Open(ISqlite3 sqlite3, string path) => new SqliteDatabase(sqlite3, path, SqliteOpen.ReadWrite);
public static SqliteDatabase OpenRead(ISqlite3 sqlite3, string path) => new SqliteDatabase(sqlite3, path, SqliteOpen.ReadOnly);
public static KeyValuePair <int, string> GetError(this ISqlite3 sqlite3, int errorCode) { return(KeyValuePair.Create(errorCode, sqlite3.Errstr(errorCode) ?? string.Empty)); }