File: SqlitePreparedStatement.h

package info (click to toggle)
codelite 17.0.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 136,204 kB
  • sloc: cpp: 491,547; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 804; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (63 lines) | stat: -rw-r--r-- 1,744 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef __SQLITE_PREPARED_STATEMENT_H__
#define __SQLITE_PREPARED_STATEMENT_H__

// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"

#ifdef __BORLANDC__
    #pragma hdrstop
#endif

#ifndef WX_PRECOMP
    #include "wx/wx.h"
#endif

#include "wx/dynarray.h"

#include "PreparedStatement.h"

#include "sqlite3.h"

WX_DEFINE_ARRAY_PTR(sqlite3_stmt*, StatementVector);

class DatabaseResultSet;

class SqlitePreparedStatement : public PreparedStatement
{
public:
  // ctor
  SqlitePreparedStatement(sqlite3* pDatabase);
  SqlitePreparedStatement(sqlite3* pDatabase, sqlite3_stmt* pStatement);
  SqlitePreparedStatement(sqlite3* pDatabase, StatementVector statements);

  // dtor
  virtual ~SqlitePreparedStatement();

  virtual void Close();
  
  void AddPreparedStatement(sqlite3_stmt* pStatement);

  // get field
  virtual void SetParamInt(int nPosition, int nValue);
  virtual void SetParamDouble(int nPosition, double dblValue);
  virtual void SetParamString(int nPosition, const wxString& strValue);
  virtual void SetParamNull(int nPosition);
  virtual void SetParamBlob(int nPosition, const void* pData, long nDataLength);
  virtual void SetParamDate(int nPosition, const wxDateTime& dateValue);
  virtual void SetParamBool(int nPosition, bool bValue);
  virtual int GetParameterCount();

  virtual int RunQuery();
  virtual DatabaseResultSet* RunQueryWithResults();

  sqlite3_stmt* GetLastStatement() { return (m_Statements.size() > 0) ? m_Statements[m_Statements.size()-1] : NULL; }

private:
  int FindStatementAndAdjustPositionIndex(int* pPosition);
 
  sqlite3* m_pDatabase; // Database pointer needed for error messages
  StatementVector m_Statements;
};

#endif // __SQLITE_PREPARED_STATEMENT_H__