Ejemplo n.º 1
0
        internal exec_hook_info(delegate_exec func, object v)
        {
            _func      = func;
            _user_data = v;

            _h = GCHandle.Alloc(this);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 internal void free()
 {
     _func      = null;
     _user_data = null;
     _h.Free();
 }
Ejemplo n.º 4
0
 int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg)
 {
     throw new Exception(GRIPE);
 }
Ejemplo n.º 5
0
 public exec_hook_info(delegate_exec func, object v)
 {
     _func      = func;
     _user_data = v;
 }
Ejemplo n.º 6
0
 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;
        }
Ejemplo n.º 8
0
 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);
 }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
 internal void free()
 {
     _func = null;
     _user_data = null;
     _h.Free();
 }
Ejemplo n.º 11
0
        internal exec_hook_info(delegate_exec func, object v)
        {
            _func = func;
            _user_data = v;

            _h = GCHandle.Alloc(this);
        }
Ejemplo n.º 12
0
 public int sqlite3_exec(IntPtr db, string sql, delegate_exec callback, object user_data, out string errMsg) => throw new NotImplementedException();
Ejemplo n.º 13
0
        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;
        }
Ejemplo n.º 14
0
        int ISQLite3Provider.sqlite3_exec(IntPtr db, string sql, delegate_exec func, object user_data, out string errMsg)
        {
	    throw new Exception(GRIPE);
        }