public static byte [] ColumnByteArray(Sqlite3Statement stmt, int index) { int length = ColumnBytes(stmt, index); if (length > 0) { return(ColumnBlob(stmt, index)); } return(new byte [0]); }
void Dispose(bool disposing) { var s = Statement; Statement = NullStatement; Connection = null; if (s != NullStatement) { SQLite3.Finalize(s); } }
public int ExecuteNonQuery(object [] source) { if (Initialized && Statement == NullStatement) { throw new ObjectDisposedException(nameof(PreparedSqlLiteInsertCommand)); } if (Connection.Trace) { Connection.Tracer?.Invoke("Executing: " + CommandText); } var r = Result.OK; if (!Initialized) { Statement = SQLite3.Prepare2(Connection.Handle, CommandText); Initialized = true; } //bind the values. if (source != null) { for (int i = 0; i < source.Length; i++) { SQLiteCommand.BindParameter(Statement, i + 1, source [i], Connection.StoreDateTimeAsTicks, Connection.DateTimeStringFormat, Connection.StoreTimeSpanAsTicks); } } r = SQLite3.Step(Statement); if (r == Result.Done) { int rowsAffected = SQLite3.Changes(Connection.Handle); SQLite3.Reset(Statement); return(rowsAffected); } else if (r == Result.Error) { string msg = SQLite3.GetErrmsg(Connection.Handle); SQLite3.Reset(Statement); throw SQLiteException.New(r, msg); } else if (r == Result.Constraint && SQLite3.ExtendedErrCode(Connection.Handle) == ExtendedResult.ConstraintNotNull) { SQLite3.Reset(Statement); throw NotNullConstraintViolationException.New(r, SQLite3.GetErrmsg(Connection.Handle)); } else { SQLite3.Reset(Statement); throw SQLiteException.New(r, r.ToString()); } }
public static Sqlite3Statement Prepare2(Sqlite3DatabaseHandle db, string query) { Sqlite3Statement stmt = default(Sqlite3Statement); stmt = new Sqlite3Statement(); var r = Sqlite3.sqlite3_prepare_v2(db, query, -1, ref stmt, 0); if (r != 0) { throw SQLiteException.New((Result)r, GetErrmsg(db)); } return(stmt); }
public static int BindNull(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_bind_null(stmt, index)); }
public static int BindParameterIndex(Sqlite3Statement stmt, string name) { return(Sqlite3.sqlite3_bind_parameter_index(stmt, name)); }
public static Result Finalize(Sqlite3Statement stmt) { return((Result)Sqlite3.sqlite3_finalize(stmt)); }
public static Result Reset(Sqlite3Statement stmt) { return((Result)Sqlite3.sqlite3_reset(stmt)); }
public static Result Step(Sqlite3Statement stmt) { return((Result)Sqlite3.sqlite3_step(stmt)); }
public static string ColumnName16(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_name(stmt, index)); }
public static string ColumnString(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_text(stmt, index)); }
public static int ColumnBytes(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_bytes(stmt, index)); }
public static byte [] ColumnBlob(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_blob(stmt, index)); }
public static double ColumnDouble(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_double(stmt, index)); }
public static long ColumnInt64(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_int64(stmt, index)); }
public static int ColumnInt(Sqlite3Statement stmt, int index) { return(Sqlite3.sqlite3_column_int(stmt, index)); }
public static ColType ColumnType(Sqlite3Statement stmt, int index) { return((ColType)Sqlite3.sqlite3_column_type(stmt, index)); }
public static int BindInt64(Sqlite3Statement stmt, int index, long val) { return(Sqlite3.sqlite3_bind_int64(stmt, index, val)); }
public static int BindDouble(Sqlite3Statement stmt, int index, double val) { return(Sqlite3.sqlite3_bind_double(stmt, index, val)); }
public static int BindBlob(Sqlite3Statement stmt, int index, byte [] val, int n, IntPtr free) { return(Sqlite3.sqlite3_bind_blob(stmt, index, val, n, null)); }
public static int BindText(Sqlite3Statement stmt, int index, string val, int n, IntPtr free) { return(Sqlite3.sqlite3_bind_text(stmt, index, val, n, null)); }
public static int ColumnCount(Sqlite3Statement stmt) { return(Sqlite3.sqlite3_column_count(stmt)); }