//////////////////////////////////////////////////////////////////////////// _ _ ____ ____// Project | | | | / ___) / ___)// | | | || | __ | |// | |_| || |_\ || \___// \____/ \____| \ ___) 6.0////! \file CppSQLite3Statement.h//! \brief CppSQLite3Statement Class//! \details SQLite provides some experimental functionality for working//! with pre-compiled SQL.//! \author duxiaomin。//! \attention//! CppSQLite3 - A C++ wrapper around the SQLite3 embedded database library. <br>//!//! Permission to use, copy, modify, and distribute this software and its//! documentation for any purpose, without fee, and without a written//! agreement, is hereby granted, provided that the above copyright notice,//! this paragraph and the following two paragraphs appear in all copies,//! modifications, and distributions.//!//! Copyright (c) 2004 Rob Groves. All Rights Reserved. <br>//! rob.groves@btinternet.com//!//! Modified by UGC, a staff of SuperMap Software Co., Ltd. 2008 <br>//! \version 6.0//////////////////////////////////////////////////////////////////////////#ifndef CPPSQLITE3STATEMENT_H#define CPPSQLITE3STATEMENT_H#include "Stream/ugdefs.h"struct sqlite3;struct sqlite3_stmt;namespace UGC{class CppSQLite3Query;//! \brief SQLite provides some experimental functionality for working//! with pre-compiled SQL.//! \remarks When the same SQL is being executed over and over again with//! different values, a significant performance improvement can be had by//! only compiling the SQL once, and executing it multiple times, each time//! with different values. CppSQLiteStatement encapsulates this functionality.class SQLITECI_API CppSQLite3Statement{public://! \brief 构造CppSQLite3Statement();//! \brief 析构#ifdef SYMBIAN60~CppSQLite3Statement();#elsevirtual ~CppSQLite3Statement();#endifpublic://! \brief 执行一个Statement。//! \return 执行是否成功。UGbool execDML();//! \brief 执行一个Statement。//! \param &nID 最后一条插入记录的rowid[in]。//! \return 执行是否成功。UGbool execDML(UGint &nID);//! \brief 执行一个查询。//! \return CppSQLite3Query对象。CppSQLite3Query execQuery();//! \brief 绑定一个字符串。//! \param nParam 绑定的索引号[in]。//! \param szValue 要绑定的字符串[in]。void bind(UGint nParam, const UGString& szValue,UGbool bStorageUTF8);//! \brief 绑定一个整数。//! \param nParam 绑定的索引号[in]。//! \param szValue 要绑定的整数[in]。void bind(UGint nParam, const UGint nValue);//! \brief 绑定一个长整数。//! \param nParam 绑定的索引号[in]。//! \param szValue 要绑定的长整数[in]。void bind(UGint nParam, const UGlong lValue);//! \brief 绑定一个浮点数。//! \param nParam 绑定的索引号[in]。//! \param szValue 要绑定的浮点数[in]。void bind(UGint nParam, const UGdouble dwValue);//! \brief 绑定一个二进制字段。//! \param nParam 绑定的索引号[in]。//! \param blobValue 二进制开始的指针[in]。//! \param nLen 二进制的长度[in]。void bind(UGint nParam, const UGuchar* blobValue, UGint nLen);//! \brief 绑定一个空值。//! \param nParam 绑定的索引号[in]。void bindNull(int nParam);//! \brief 绑定一个变体。//! \param zsParam 绑定的索引号[in]。//! \param blobValue 要绑定的变体[in]。void bind(int nParam, const UGVariant &varValue, UGbool bStorageUTF8);//! \brief 绑定一个字符串。//! \param zsParam 绑定的索引号[in]。//! \param szValue 要绑定的字符串[in]。void bind(const UGString& zsParam,const UGString& szValue,UGbool bStorageUTF8);//! \brief 绑定一个整数。//! \param zsParam 绑定的索引号[in]。//! \param szValue 要绑定的整数[in]。void bind(const UGString& zsParam, const UGint nValue,UGbool bStorageUTF8);//! \brief 绑定一个长整数。//! \param zsParam 绑定的索引号[in]。//! \param szValue 要绑定的长整数[in]。void bind(const UGString& zsParam, const UGlong lValue,UGbool bStorageUTF8);//! \brief 绑定一个浮点数。//! \param zsParam 绑定的索引号[in]。//! \param szValue 要绑定的浮点数[in]。void bind(const UGString& zsParam, const UGdouble dwValue,UGbool bStorageUTF8);//! \brief 绑定一个二进制数。//! \param zsParam 绑定的索引号[in]。//! \param blobValue 要绑定的二进制的指针[in]。//! \param nLen 要绑定的二进制的长度[in]。void bind(const UGString& zsParam, const UGuchar* blobValue, UGint nLen,UGbool bStorageUTF8);//! \brief 绑定一个长度为nSize的全零二进制数。//! \param zsParam 绑定的索引号[in]。//! \param nLen 要绑定的二进制的长度[in]。void bindZeroBlob(UGint nParam,UGint nSize);//! \brief 得到要绑定的变量个数。//! \return 要绑定的个数。UGint GetParameterCount();//! \brief 通过绑定参数的索引号得到名称。//! \param index 参数的索引号[in]。//! \return 绑定参数的名称。UGString GetParameterName(const UGint index,UGbool bStorageUTF8);//! \brief 通过绑定参数的名称得到索引号。//! \param index 参数的名称[in]。//! \return 绑定参数的索引号。UGint GetIndex(const UGString& zsParam,UGbool bStorageUTF8);//! \brief 绑定一个空值。//! \param nParam 绑定的名称[in]。void bindNull(const UGString& zsParam,UGbool bStorageUTF8);//! \brief 给定一个SQL,重新构建一个Statement。//! \param &strSQL SQL语句[in]。//! \return 构建是否成功。UGbool ChangeStatement(const UGString &strSQL,UGuint*pArray,UGuint nCount,UGbool bStorageUTF8);//! \brief 重新设置Statement。void reset();//! \brief 释放所有占用的内存。UGbool finalize();//! \brief 检测Statement是否为空UGbool haveStatement();//! \brief 设置绑定语句void Set(sqlite3* db,sqlite3_stmt* stmt);private:sqlite3* m_pDB;sqlite3_stmt* m_pVM;const char* m_pErrMsg;private:CppSQLite3Statement(const CppSQLite3Statement& stmt);const CppSQLite3Statement& operator=(const CppSQLite3Statement& stmt);};}#endif // !defined(CPPSQLITE3STATEMENT_H)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型