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 string sqlite3_db_filename(DatabaseHandle db, string zDbName)
        {
            var ptr = MarshalEx.StringToHGlobalUTF8(zDbName);

            try
            {
                return(MarshalEx.PtrToStringUTF8(sqlite3_db_filename(db, ptr)));
            }
            finally
            {
                if (ptr != IntPtr.Zero)
                {
                    Marshal.FreeHGlobal(ptr);
                }
            }
        }
示例#3
0
        public void StringToHGlobalUTF8_and_PtrToStringUTF8_roundtrip()
        {
            var s = "text";
            int size;
            var ptr = MarshalEx.StringToHGlobalUTF8(s, out size);

            try
            {
                var result = MarshalEx.PtrToStringUTF8(ptr);

                Assert.Equal(s, result);
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
        }
 public static string sqlite3_libversion()
 {
     return(MarshalEx.PtrToStringUTF8(sqlite3_libversion_raw()));
 }
 public static string sqlite3_errstr(int rc)
 {
     return(MarshalEx.PtrToStringUTF8(sqlite3_errstr_raw(rc)));
 }
 public static string sqlite3_column_text(StatementHandle pStmt, int iCol)
 {
     return(MarshalEx.PtrToStringUTF8(sqlite3_column_text_raw(pStmt, iCol)));
 }
 public static string sqlite3_column_name(StatementHandle pStmt, int N)
 {
     return(MarshalEx.PtrToStringUTF8(sqlite3_column_name_raw(pStmt, N)));
 }
示例#8
0
 public void PtrToStringUTF8_returns_null_when_zero()
 {
     Assert.Null(MarshalEx.PtrToStringUTF8(IntPtr.Zero));
 }