public static int sqlite3_prepare_v2( DatabaseHandle db, string zSql, out StatementHandle ppStmt, out string pzTail) { int nByte; var zSqlPtr = MarshalEx.StringToHGlobalUTF8(zSql, out nByte); try { IntPtr pzTailPtr; var rc = sqlite3_prepare_v2(db, zSqlPtr, nByte, out ppStmt, out pzTailPtr); pzTail = MarshalEx.PtrToStringUTF8(pzTailPtr); return(rc); } finally { if (zSqlPtr != IntPtr.Zero) { Marshal.FreeHGlobal(zSqlPtr); } } }
public static object Read(SQLiteType sqliteType, StatementHandle handle, int ordinal) { Debug.Assert(handle != null && !handle.IsInvalid, "handle is null."); if (sqliteType == SQLiteType.Null || NativeMethods.sqlite3_column_type(handle, ordinal) == Constants.SQLITE_NULL) { return DBNull.Value; } switch (sqliteType) { case SQLiteType.Integer: return NativeMethods.sqlite3_column_int64(handle, ordinal); case SQLiteType.Float: return NativeMethods.sqlite3_column_double(handle, ordinal); case SQLiteType.Text: return NativeMethods.sqlite3_column_text(handle, ordinal); default: Debug.Assert(sqliteType == SQLiteType.Blob, "_sqliteType is not Blob."); return NativeMethods.sqlite3_column_blob(handle, ordinal); } }
public static int sqlite3_bind_blob(StatementHandle pStmt, int i, byte[] zData) { var zDataPtr = Marshal.AllocHGlobal(zData.Length); try { Marshal.Copy(zData, 0, zDataPtr, zData.Length); return sqlite3_bind_blob(pStmt, i, zDataPtr, zData.Length, Constants.SQLITE_TRANSIENT); } finally { Marshal.FreeHGlobal(zDataPtr); } }
public static int sqlite3_bind_parameter_index(StatementHandle pStmt, string zName) { var ptr = MarshalEx.StringToHGlobalUTF8(zName); try { return sqlite3_bind_parameter_index(pStmt, ptr); } finally { if (ptr != IntPtr.Zero) { Marshal.FreeHGlobal(ptr); } } }
public static int sqlite3_bind_blob(StatementHandle pStmt, int i, byte[] zData) { var zDataPtr = Marshal.AllocHGlobal(zData.Length); try { Marshal.Copy(zData, 0, zDataPtr, zData.Length); return(sqlite3_bind_blob(pStmt, i, zDataPtr, zData.Length, Constants.SQLITE_TRANSIENT)); } finally { Marshal.FreeHGlobal(zDataPtr); } }
public static int sqlite3_bind_text(StatementHandle pStmt, int i, string zData) { int size; var ptr = MarshalEx.StringToHGlobalUTF8(zData, out size); try { return sqlite3_bind_text(pStmt, i, ptr, size - 1, Constants.SQLITE_TRANSIENT); } finally { if (ptr != IntPtr.Zero) { Marshal.FreeHGlobal(ptr); } } }
public static int sqlite3_bind_parameter_index(StatementHandle pStmt, string zName) { var ptr = MarshalEx.StringToHGlobalUTF8(zName); try { return(sqlite3_bind_parameter_index(pStmt, ptr)); } finally { if (ptr != IntPtr.Zero) { Marshal.FreeHGlobal(ptr); } } }
public static byte[] sqlite3_column_blob(StatementHandle pStmt, int iCol) { var ptr = sqlite3_column_blob_raw(pStmt, iCol); if (ptr == IntPtr.Zero) { return(null); } var bytes = sqlite3_column_bytes(pStmt, iCol); var result = new byte[bytes]; Marshal.Copy(ptr, result, 0, bytes); return(result); }
public static int sqlite3_bind_text(StatementHandle pStmt, int i, string zData) { int size; var ptr = MarshalEx.StringToHGlobalUTF8(zData, out size); try { return(sqlite3_bind_text(pStmt, i, ptr, size - 1, Constants.SQLITE_TRANSIENT)); } finally { if (ptr != IntPtr.Zero) { Marshal.FreeHGlobal(ptr); } } }
public static extern int sqlite3_reset(StatementHandle pStmt);
public static extern long sqlite3_column_int64(StatementHandle pStmt, int iCol);
public static extern int sqlite3_column_type(StatementHandle pStmt, int iCol);
private static extern IntPtr sqlite3_column_text_raw(StatementHandle pStmt, int iCol);
private static extern IntPtr sqlite3_column_name_raw(StatementHandle pStmt, int N);
public static extern int sqlite3_clear_bindings(StatementHandle pStmt);
private static extern int sqlite3_bind_parameter_index(StatementHandle pStmt, IntPtr zName);
public static extern int sqlite3_bind_double(StatementHandle pStmt, int i, double rValue);
public static extern int sqlite3_stmt_readonly(StatementHandle pStmt);
public static extern int sqlite3_stmt_busy(StatementHandle pStmt);
public static string sqlite3_column_text(StatementHandle pStmt, int iCol) { return MarshalEx.PtrToStringUTF8(sqlite3_column_text_raw(pStmt, iCol)); }
public static int sqlite3_prepare_v2( DatabaseHandle db, string zSql, out StatementHandle ppStmt, out string pzTail) { int nByte; var zSqlPtr = MarshalEx.StringToHGlobalUTF8(zSql, out nByte); try { IntPtr pzTailPtr; var rc = sqlite3_prepare_v2(db, zSqlPtr, nByte, out ppStmt, out pzTailPtr); pzTail = MarshalEx.PtrToStringUTF8(pzTailPtr); return rc; } finally { if (zSqlPtr != IntPtr.Zero) { Marshal.FreeHGlobal(zSqlPtr); } } }
public static extern int sqlite3_bind_int64(StatementHandle pStmt, int i, long iValue);
private static extern int sqlite3_bind_text(StatementHandle pStmt, int i, IntPtr zData, int n, IntPtr xDel);
public static extern int sqlite3_bind_null(StatementHandle pStmt, int i);
private static extern int sqlite3_prepare_v2( DatabaseHandle db, IntPtr zSql, int nByte, out StatementHandle ppStmt, out IntPtr pzTail);
public static string sqlite3_column_name(StatementHandle pStmt, int N) { return(MarshalEx.PtrToStringUTF8(sqlite3_column_name_raw(pStmt, N))); }
public static string sqlite3_column_name(StatementHandle pStmt, int N) { return MarshalEx.PtrToStringUTF8(sqlite3_column_name_raw(pStmt, N)); }
public static string sqlite3_column_text(StatementHandle pStmt, int iCol) { return(MarshalEx.PtrToStringUTF8(sqlite3_column_text_raw(pStmt, iCol))); }
public static extern double sqlite3_column_double(StatementHandle pStmt, int iCol);
private static extern IntPtr sqlite3_column_blob_raw(StatementHandle pStmt, int iCol);
private static extern int sqlite3_column_bytes(StatementHandle pStmt, int iCol);
public static extern int sqlite3_column_count(StatementHandle pStmt);
public static byte[] sqlite3_column_blob(StatementHandle pStmt, int iCol) { var ptr = sqlite3_column_blob_raw(pStmt, iCol); if (ptr == IntPtr.Zero) { return null; } var bytes = sqlite3_column_bytes(pStmt, iCol); var result = new byte[bytes]; Marshal.Copy(ptr, result, 0, bytes); return result; }