⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlite3_utf16.cs

📁 破解的飞信源代码
💻 CS
字号:
namespace Imps.Client.Data
{
    using System;
    using System.Runtime.InteropServices;

    internal class SQLite3_UTF16 : SQLite3
    {
        internal SQLite3_UTF16(SQLiteDateFormats fmt) : base(fmt)
        {
        }

        internal override void Bind_DateTime(SQLiteStatement stmt, int index, DateTime dt)
        {
            this.Bind_Text(stmt, index, base.ToString(dt));
        }

        internal override string Bind_ParamName(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return base.ToString(UnsafeNativeMethods.sqlite3_bind_parameter_name_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override void Bind_Text(SQLiteStatement stmt, int index, string value)
        {
            int errorCode = UnsafeNativeMethods.sqlite3_bind_text16_interop(stmt._sqlite_stmt, index, value, value.Length * 2, -1);
            if (errorCode > 0)
            {
                throw new SQLiteException(errorCode, this.SQLiteLastError());
            }
        }

        internal override string ColumnDatabaseName(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_column_database_name16_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override string ColumnName(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_column_name16_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override string ColumnOriginalName(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_column_origin_name16_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override string ColumnTableName(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_column_table_name16_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override IntPtr CreateCollation(string strCollation, SQLiteCollation func)
        {
            IntPtr nCookie;
            int errorCode = UnsafeNativeMethods.sqlite3_create_collation16_interop(base._sql, strCollation, 4, 0, func, out nCookie);
            if (errorCode > 0)
            {
                throw new SQLiteException(errorCode, this.SQLiteLastError());
            }
            return nCookie;
        }

        internal override IntPtr CreateFunction(string strFunction, int nArgs, SQLiteCallback func, SQLiteCallback funcstep, SQLiteCallback funcfinal)
        {
            IntPtr nCookie;
            int errorCode = UnsafeNativeMethods.sqlite3_create_function16_interop(base._sql, strFunction, nArgs, 4, func, funcstep, funcfinal, out nCookie);
            if (errorCode > 0)
            {
                throw new SQLiteException(errorCode, this.SQLiteLastError());
            }
            return nCookie;
        }

        internal override DateTime GetDateTime(SQLiteStatement stmt, int index)
        {
            return base.ToDateTime(this.GetText(stmt, index));
        }

        internal override string GetParamValueText(IntPtr ptr)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_value_text16_interop(ptr, out nativestringlen), nativestringlen);
        }

        internal override string GetText(SQLiteStatement stmt, int index)
        {
            int nativestringlen;
            return this.ToString(UnsafeNativeMethods.sqlite3_column_text16_interop(stmt._sqlite_stmt, index, out nativestringlen), nativestringlen);
        }

        internal override void Open(string strFilename)
        {
            if (base._sql == null)
            {
                IntPtr db;
                int errorCode = UnsafeNativeMethods.sqlite3_open16_interop(strFilename, out db);
                if (errorCode > 0)
                {
                    throw new SQLiteException(errorCode, null);
                }
                base._sql = db;
                base._functionsArray = SQLiteFunction.BindFunctions(this);
            }
        }

        internal override void ReturnError(IntPtr context, string value)
        {
            UnsafeNativeMethods.sqlite3_result_error16_interop(context, value, value.Length);
        }

        internal override void ReturnText(IntPtr context, string value)
        {
            UnsafeNativeMethods.sqlite3_result_text16_interop(context, value, value.Length, (IntPtr) (-1));
        }

        public override string ToString(IntPtr b, int nbytelen)
        {
            if (nbytelen == 0)
            {
                return "";
            }
            return Marshal.PtrToStringUni(b, nbytelen / 2);
        }

        internal override string Version
        {
            get
            {
                int nativestringlen;
                return base.ToString(UnsafeNativeMethods.sqlite3_libversion_interop(out nativestringlen), nativestringlen);
            }
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -