internal exec_hook_info(delegate_exec func, object v) { _func = func; _user_data = v; _h = GCHandle.Alloc(this); }
int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg) { // TODO null string? GCHandle pinned = GCHandle.Alloc(util.to_utf8(sql), GCHandleType.Pinned); IntPtr ptr = pinned.AddrOfPinnedObject(); int rc; byte[] buf8 = new byte[8]; GCHandle buf8_pinned = GCHandle.Alloc(buf8, GCHandleType.Pinned); IntPtr buf8_ptr = buf8_pinned.AddrOfPinnedObject(); if (func != null) { exec_hook_info hi = new exec_hook_info(func, user_data); callback_exec cb = new callback_exec(exec_hook_bridge); GCHandle h_cb = GCHandle.Alloc(cb); rc = SQLite3RuntimeProvider.sqlite3_exec(db.ToInt64(), ptr.ToInt64(), Marshal.GetFunctionPointerForDelegate(cb).ToInt64(), hi.ptr.ToInt64(), buf8_ptr.ToInt64()); hi.free(); h_cb.Free(); } else { rc = SQLite3RuntimeProvider.sqlite3_exec(db.ToInt64(), ptr.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64(), buf8_ptr.ToInt64()); } IntPtr errmsg_ptr = new IntPtr(Marshal.ReadInt64(buf8_ptr)); buf8_pinned.Free(); if (errmsg_ptr == IntPtr.Zero) { errMsg = null; } else { errMsg = util.from_utf8(errmsg_ptr); SQLite3RuntimeProvider.sqlite3_free(errmsg_ptr.ToInt64()); } pinned.Free(); return(rc); }
internal void free() { _func = null; _user_data = null; _h.Free(); }
int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg) { throw new Exception(GRIPE); }
public exec_hook_info(delegate_exec func, object v) { _func = func; _user_data = v; }
static public int sqlite3_exec(sqlite3 db, string sql, delegate_exec callback, object user_data, out string errMsg) { return(_imp.sqlite3_exec(db.ptr, sql, callback, user_data, out errMsg)); }
int ISQLite3Provider.sqlite3_exec (IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg) { IntPtr errmsg_ptr; int rc; if (func != null) { exec_hook_info hi = new exec_hook_info (func, user_data); rc = NativeMethods.sqlite3_exec (db, util.to_utf8 (sql), exec_hook_bridge, hi.ptr, out errmsg_ptr); hi.free (); } else { rc = NativeMethods.sqlite3_exec (db, util.to_utf8 (sql), null, IntPtr.Zero, out errmsg_ptr); } if (errmsg_ptr == IntPtr.Zero) { errMsg = null; } else { errMsg = util.from_utf8 (errmsg_ptr); NativeMethods.sqlite3_free (errmsg_ptr); } return rc; }
static public int sqlite3_exec(sqlite3 db, string sql, delegate_exec callback, object user_data, out string errMsg) { return _imp.sqlite3_exec(db.ptr, sql, callback, user_data, out errMsg); }
public static void exec(this sqlite3 db, string sql, delegate_exec callback, object user_data, out string errMsg) { int rc = raw.sqlite3_exec(db, sql, callback, user_data, out errMsg); check_ok(rc); }
internal void free() { _func = null; _user_data = null; _h.Free(); }
internal exec_hook_info(delegate_exec func, object v) { _func = func; _user_data = v; _h = GCHandle.Alloc(this); }
public int sqlite3_exec(IntPtr db, string sql, delegate_exec callback, object user_data, out string errMsg) => throw new NotImplementedException();
int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg) { // TODO null string? GCHandle pinned = GCHandle.Alloc(util.to_utf8(sql), GCHandleType.Pinned); IntPtr ptr = pinned.AddrOfPinnedObject(); int rc; byte[] buf8 = new byte[8]; GCHandle buf8_pinned = GCHandle.Alloc(buf8, GCHandleType.Pinned); IntPtr buf8_ptr = buf8_pinned.AddrOfPinnedObject(); if (func != null) { exec_hook_info hi = new exec_hook_info(func, user_data); callback_exec cb = new callback_exec(exec_hook_bridge); GCHandle h_cb = GCHandle.Alloc(cb); rc = SQLite3RuntimeProvider.sqlite3_exec(db.ToInt64(), ptr.ToInt64(), Marshal.GetFunctionPointerForDelegate(cb).ToInt64(), hi.ptr.ToInt64(), buf8_ptr.ToInt64()); hi.free(); h_cb.Free(); } else { rc = SQLite3RuntimeProvider.sqlite3_exec(db.ToInt64(), ptr.ToInt64(), IntPtr.Zero.ToInt64(), IntPtr.Zero.ToInt64(), buf8_ptr.ToInt64()); } IntPtr errmsg_ptr = new IntPtr(Marshal.ReadInt64(buf8_ptr)); buf8_pinned.Free(); if (errmsg_ptr == IntPtr.Zero) { errMsg = null; } else { errMsg = util.from_utf8(errmsg_ptr); SQLite3RuntimeProvider.sqlite3_free(errmsg_ptr.ToInt64()); } pinned.Free(); return rc; }
int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg) { throw new Exception(GRIPE); }