示例#1
0
        private static void ProfileCallback(SQLiteTraceEvents eventCode, IntPtr userData, IntPtr pStmt, IntPtr pDuration)
        {
            var handle     = GCHandle.FromIntPtr(userData);
            var connection = (SQLiteConnection)handle.Target;
            StatementCompletedEventHandler handler = connection.m_statementCompleted;

            if (handler != null)
            {
                var sql         = FromUtf8(NativeMethods.sqlite3_sql(pStmt));
                var nanoseconds = Marshal.ReadInt64(pDuration);
                handler(connection, new StatementCompletedEventArgs(sql, TimeSpan.FromMilliseconds(nanoseconds / 1000000.0)));
            }
        }
 public static extern int sqlite3_trace_v2(SqliteDatabaseHandle db, SQLiteTraceEvents eventsMask, SQLiteTraceV2Callback callback, IntPtr userData);