📄 sqlitebase.cs
字号:
namespace Imps.Client.Data
{
using System;
using System.Runtime.InteropServices;
internal abstract class SQLiteBase : SQLiteConvert, IDisposable
{
internal SQLiteBase(SQLiteDateFormats fmt) : base(fmt)
{
}
internal abstract IntPtr AggregateContext(IntPtr context);
internal abstract int AggregateCount(IntPtr context);
internal abstract void Bind_Blob(SQLiteStatement stmt, int index, byte[] blobData);
internal abstract void Bind_DateTime(SQLiteStatement stmt, int index, DateTime dt);
internal abstract void Bind_Double(SQLiteStatement stmt, int index, double value);
internal abstract void Bind_Int32(SQLiteStatement stmt, int index, int value);
internal abstract void Bind_Int64(SQLiteStatement stmt, int index, long value);
internal abstract void Bind_Null(SQLiteStatement stmt, int index);
internal abstract int Bind_ParamCount(SQLiteStatement stmt);
internal abstract int Bind_ParamIndex(SQLiteStatement stmt, string paramName);
internal abstract string Bind_ParamName(SQLiteStatement stmt, int index);
internal abstract void Bind_Text(SQLiteStatement stmt, int index, string value);
internal abstract void Cancel();
internal abstract void ChangePassword(byte[] newPasswordBytes);
internal abstract void Close();
internal static void Close(SQLiteConnectionHandle db)
{
int errorCode = UnsafeNativeMethods.sqlite3_close_interop(db);
if (errorCode > 0)
{
throw new SQLiteException(errorCode, SQLiteLastError(db));
}
}
internal abstract TypeAffinity ColumnAffinity(SQLiteStatement stmt, int index);
internal abstract int ColumnCount(SQLiteStatement stmt);
internal abstract string ColumnDatabaseName(SQLiteStatement stmt, int index);
internal abstract int ColumnIndex(SQLiteStatement stmt, string columnName);
internal abstract void ColumnMetaData(string dataBase, string table, string column, out string dataType, out string collateSequence, out bool notNull, out bool primaryKey, out bool autoIncrement);
internal abstract string ColumnName(SQLiteStatement stmt, int index);
internal abstract string ColumnOriginalName(SQLiteStatement stmt, int index);
internal abstract string ColumnTableName(SQLiteStatement stmt, int index);
internal abstract string ColumnType(SQLiteStatement stmt, int index, out TypeAffinity nAffinity);
internal abstract IntPtr CreateCollation(string strCollation, SQLiteCollation func);
internal abstract IntPtr CreateFunction(string strFunction, int nArgs, SQLiteCallback func, SQLiteCallback funcstep, SQLiteCallback funcfinal);
public void Dispose()
{
this.Dispose(true);
}
protected virtual void Dispose(bool bDisposing)
{
}
internal static void FinalizeStatement(SQLiteStatementHandle stmt)
{
int errorCode = UnsafeNativeMethods.sqlite3_finalize_interop(stmt);
if (errorCode > 0)
{
throw new SQLiteException(errorCode, SQLiteLastError(stmt));
}
}
internal abstract void FreeFunction(IntPtr cookie);
internal abstract long GetBytes(SQLiteStatement stmt, int index, int nDataoffset, byte[] bDest, int nStart, int nLength);
internal abstract long GetChars(SQLiteStatement stmt, int index, int nDataoffset, char[] bDest, int nStart, int nLength);
internal abstract int GetCursorForTable(SQLiteStatement stmt, int database, int rootPage);
internal abstract DateTime GetDateTime(SQLiteStatement stmt, int index);
internal abstract double GetDouble(SQLiteStatement stmt, int index);
internal abstract int GetInt32(SQLiteStatement stmt, int index);
internal abstract long GetInt64(SQLiteStatement stmt, int index);
internal abstract long GetParamValueBytes(IntPtr ptr, int nDataOffset, byte[] bDest, int nStart, int nLength);
internal abstract double GetParamValueDouble(IntPtr ptr);
internal abstract int GetParamValueInt32(IntPtr ptr);
internal abstract long GetParamValueInt64(IntPtr ptr);
internal abstract string GetParamValueText(IntPtr ptr);
internal abstract TypeAffinity GetParamValueType(IntPtr ptr);
internal abstract long GetRowIdForCursor(SQLiteStatement stmt, int cursor);
internal abstract string GetText(SQLiteStatement stmt, int index);
internal abstract object GetValue(SQLiteStatement stmt, int index, ref SQLiteType typ);
internal abstract bool IsNull(SQLiteStatement stmt, int index);
internal abstract void Open(string strFilename);
internal abstract SQLiteStatement Prepare(string strSql, SQLiteStatement previous, out string strRemain);
internal abstract int Reset(SQLiteStatement stmt);
internal abstract void ReturnBlob(IntPtr context, byte[] value);
internal abstract void ReturnDouble(IntPtr context, double value);
internal abstract void ReturnError(IntPtr context, string value);
internal abstract void ReturnInt32(IntPtr context, int value);
internal abstract void ReturnInt64(IntPtr context, long value);
internal abstract void ReturnNull(IntPtr context);
internal abstract void ReturnText(IntPtr context, string value);
internal abstract void SetCommitHook(SQLiteCommitCallback func);
internal abstract void SetPassword(byte[] passwordBytes);
internal abstract void SetRollbackHook(SQLiteRollbackCallback func);
internal abstract void SetTimeout(int nTimeoutMS);
internal abstract void SetUpdateHook(SQLiteUpdateCallback func);
internal abstract string SQLiteLastError();
internal static string SQLiteLastError(SQLiteConnectionHandle db)
{
int nativestringlen;
return SQLiteConvert.UTF8ToString(UnsafeNativeMethods.sqlite3_errmsg_interop(db, out nativestringlen), nativestringlen);
}
internal static string SQLiteLastError(SQLiteStatementHandle stmt)
{
int nativestringlen;
return SQLiteConvert.UTF8ToString(UnsafeNativeMethods.sqlite3_errmsg_stmt_interop(stmt, out nativestringlen), nativestringlen);
}
internal abstract bool Step(SQLiteStatement stmt);
internal abstract int Changes { get; }
internal abstract string Version { get; }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -