#include <CppSQLite3.h>
Public Member Functions | |
CppSQLite3Statement () | |
CppSQLite3Statement (const CppSQLite3Statement &rStatement) | |
CppSQLite3Statement (sqlite3 *pDB, sqlite3_stmt *pVM) | |
virtual | ~CppSQLite3Statement () |
CppSQLite3Statement & | operator= (const CppSQLite3Statement &rStatement) |
int | execDML () |
CppSQLite3Query | execQuery () |
void | bind (int nParam, const char *szValue) |
void | bind (int nParam, const int nValue) |
void | bind (int nParam, const double dwValue) |
void | bind (int nParam, const unsigned char *blobValue, int nLen) |
void | bindNull (int nParam) |
void | reset () |
void | finalize () |
Private Member Functions | |
void | checkDB () |
void | checkVM () |
Private Attributes | |
sqlite3 * | mpDB |
sqlite3_stmt * | mpVM |
Definition at line 451 of file CppSQLite3.h.
CppSQLite3Statement::CppSQLite3Statement | ( | ) |
CppSQLite3Statement::CppSQLite3Statement | ( | const CppSQLite3Statement & | rStatement | ) |
Definition at line 1771 of file CppSQLite3.cpp.
CppSQLite3Statement::CppSQLite3Statement | ( | sqlite3 * | pDB, | |
sqlite3_stmt * | pVM | |||
) |
CppSQLite3Statement::~CppSQLite3Statement | ( | ) | [virtual] |
Definition at line 1803 of file CppSQLite3.cpp.
References finalize().
{ try { finalize(); } catch (...) { } }
void CppSQLite3Statement::bind | ( | int | nParam, | |
const char * | szValue | |||
) |
Definition at line 1963 of file CppSQLite3.cpp.
References checkVM(), DONT_DELETE_MSG, and mpVM.
{ checkVM(); int nRes = sqlite3_bind_text(mpVM, nParam, szValue, -1, SQLITE_TRANSIENT); if (nRes != SQLITE_OK) { throw CppSQLite3Exception(nRes, "Error binding string param", DONT_DELETE_MSG); } }
void CppSQLite3Statement::bind | ( | int | nParam, | |
const int | nValue | |||
) |
Definition at line 1991 of file CppSQLite3.cpp.
References checkVM(), DONT_DELETE_MSG, and mpVM.
{ checkVM(); int nRes = sqlite3_bind_int(mpVM, nParam, nValue); if (nRes != SQLITE_OK) { throw CppSQLite3Exception(nRes, "Error binding int param", DONT_DELETE_MSG); } }
void CppSQLite3Statement::bind | ( | int | nParam, | |
const double | dwValue | |||
) |
Definition at line 2019 of file CppSQLite3.cpp.
References checkVM(), DONT_DELETE_MSG, and mpVM.
{ checkVM(); int nRes = sqlite3_bind_double(mpVM, nParam, dValue); if (nRes != SQLITE_OK) { throw CppSQLite3Exception(nRes, "Error binding double param", DONT_DELETE_MSG); } }
void CppSQLite3Statement::bind | ( | int | nParam, | |
const unsigned char * | blobValue, | |||
int | nLen | |||
) |
Definition at line 2047 of file CppSQLite3.cpp.
References checkVM(), DONT_DELETE_MSG, and mpVM.
{ checkVM(); int nRes = sqlite3_bind_blob(mpVM, nParam, (const void*)blobValue, nLen, SQLITE_TRANSIENT); if (nRes != SQLITE_OK) { throw CppSQLite3Exception(nRes, "Error binding blob param", DONT_DELETE_MSG); } }
void CppSQLite3Statement::bindNull | ( | int | nParam | ) |
Definition at line 2077 of file CppSQLite3.cpp.
References checkVM(), DONT_DELETE_MSG, and mpVM.
{ checkVM(); int nRes = sqlite3_bind_null(mpVM, nParam); if (nRes != SQLITE_OK) { throw CppSQLite3Exception(nRes, "Error binding NULL param", DONT_DELETE_MSG); } }
void CppSQLite3Statement::checkDB | ( | ) | [private] |
Definition at line 2167 of file CppSQLite3.cpp.
References CPPSQLITE_ERROR, DONT_DELETE_MSG, and mpDB.
Referenced by execDML(), and execQuery().
{ if (mpDB == 0) { throw CppSQLite3Exception(CPPSQLITE_ERROR, "Database not open", DONT_DELETE_MSG); } }
void CppSQLite3Statement::checkVM | ( | ) | [private] |
Definition at line 2189 of file CppSQLite3.cpp.
References CPPSQLITE_ERROR, DONT_DELETE_MSG, and mpVM.
Referenced by bind(), bindNull(), execDML(), and execQuery().
{ if (mpVM == 0) { throw CppSQLite3Exception(CPPSQLITE_ERROR, "Null Virtual Machine pointer", DONT_DELETE_MSG); } }
int CppSQLite3Statement::execDML | ( | ) |
Definition at line 1847 of file CppSQLite3.cpp.
References checkDB(), checkVM(), DONT_DELETE_MSG, mpDB, and mpVM.
{ checkDB(); checkVM(); const char* szError=0; int nRet = sqlite3_step(mpVM); if (nRet == SQLITE_DONE) { int nRowsChanged = sqlite3_changes(mpDB); nRet = sqlite3_reset(mpVM); if (nRet != SQLITE_OK) { szError = sqlite3_errmsg(mpDB); throw CppSQLite3Exception(nRet, (char*)szError, DONT_DELETE_MSG); } return nRowsChanged; } else { nRet = sqlite3_reset(mpVM); szError = sqlite3_errmsg(mpDB); throw CppSQLite3Exception(nRet, (char*)szError, DONT_DELETE_MSG); } }
CppSQLite3Query CppSQLite3Statement::execQuery | ( | ) |
Definition at line 1911 of file CppSQLite3.cpp.
References checkDB(), checkVM(), DONT_DELETE_MSG, mpDB, and mpVM.
{ checkDB(); checkVM(); int nRet = sqlite3_step(mpVM); if (nRet == SQLITE_DONE) { // no rows return CppSQLite3Query(mpDB, mpVM, true/*eof*/, false); } else if (nRet == SQLITE_ROW) { // at least 1 row return CppSQLite3Query(mpDB, mpVM, false/*eof*/, false); } else { nRet = sqlite3_reset(mpVM); const char* szError = sqlite3_errmsg(mpDB); throw CppSQLite3Exception(nRet, (char*)szError, DONT_DELETE_MSG); } }
void CppSQLite3Statement::finalize | ( | ) |
Definition at line 2135 of file CppSQLite3.cpp.
References DONT_DELETE_MSG, mpDB, and mpVM.
Referenced by ~CppSQLite3Statement().
{ if (mpVM) { int nRet = sqlite3_finalize(mpVM); mpVM = 0; if (nRet != SQLITE_OK) { const char* szError = sqlite3_errmsg(mpDB); throw CppSQLite3Exception(nRet, (char*)szError, DONT_DELETE_MSG); } } }
CppSQLite3Statement & CppSQLite3Statement::operator= | ( | const CppSQLite3Statement & | rStatement | ) |
Definition at line 1827 of file CppSQLite3.cpp.
void CppSQLite3Statement::reset | ( | ) |
Definition at line 2105 of file CppSQLite3.cpp.
References DONT_DELETE_MSG, mpDB, and mpVM.
{ if (mpVM) { int nRet = sqlite3_reset(mpVM); if (nRet != SQLITE_OK) { const char* szError = sqlite3_errmsg(mpDB); throw CppSQLite3Exception(nRet, (char*)szError, DONT_DELETE_MSG); } } }
sqlite3* CppSQLite3Statement::mpDB [private] |
Definition at line 517 of file CppSQLite3.h.
Referenced by checkDB(), CppSQLite3Statement(), execDML(), execQuery(), finalize(), operator=(), and reset().
sqlite3_stmt* CppSQLite3Statement::mpVM [private] |
Definition at line 519 of file CppSQLite3.h.
Referenced by bind(), bindNull(), checkVM(), CppSQLite3Statement(), execDML(), execQuery(), finalize(), operator=(), and reset().