VSQLite++  0.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
sqlite::command Struct Reference

command is the base class of all sql command classes An object of this class is not copyable More...

#include <command.hpp>

Inheritance diagram for sqlite::command:
Inheritance graph
Collaboration diagram for sqlite::command:
Collaboration graph

Public Member Functions

 command (connection &con, std::string const &sql)
 command constructor
 
virtual ~command ()
 command destructor
 
void clear ()
 clear is used if you'd like to reuse a command object
 
bool emit ()
 emit executes the sql command If you have used placeholders you must have replaced all placeholders
 
bool operator() ()
 works exactly like the method command::emit
 
void bind (int idx)
 binds NULL to the given 1 based index
 
void bind (int idx, int v)
 binds the 32-Bit integer v to the given 1 based index
 
void bind (int idx, boost::int64_t v)
 binds the 64-Bit integer v to the given 1 based index
 
void bind (int idx, double v)
 binds the double v to the given 1 based index
 
void bind (int idx, std::string const &v)
 binds the text/string v to the given 1 based index
 
void bind (int idx, void const *buf, size_t buf_size)
 binds the binary/blob buf to the given 1 based index
 
void bind (int idx, std::vector< unsigned char > const &v)
 binds the binary/blob v to the given 1 based index
 
commandoperator% (null_type const &p)
 replacement for void command::bind(int idx); To use this operator% you have to use the global object nil Indexes are given automatically first call uses 1 as index, second 2 and so on
 
commandoperator% (int p)
 replacement for void command::bind(int idx,int); Indexes are given automatically first call uses 1 as index, second 2 and so on
 
commandoperator% (boost::int64_t p)
 replacement for void command::bind(int idx,boost::int64_t); Indexes are given automatically first call uses 1 as index, second 2 and so on
 
commandoperator% (double p)
 replacement for void command::bind(int idx,double); Indexes are given automatically first call uses 1 as index, second 2 and so on
 
commandoperator% (std::string const &p)
 replacement for void command::bind(int idx,std::string const&); Indexes are given automatically first call uses 1 as index, second 2 and so on
 
commandoperator% (std::vector< unsigned char > const &p)
 replacement for void command::bind(int idx,std::vector<unsigned char> const&); Indexes are given automatically first call uses 1 as index, second 2 and so on
 

Protected Member Functions

void access_check ()
 
bool step ()
 
struct sqlite3 * get_handle ()
 

Protected Attributes

sqlite3_stmt * stmt
 

Private Member Functions

void prepare ()
 
void finalize ()
 

Private Attributes

connectionm_con
 
std::string m_sql
 
int last_arg_idx
 

Detailed Description

command is the base class of all sql command classes An object of this class is not copyable

Definition at line 57 of file command.hpp.

Constructor & Destructor Documentation

sqlite::command::command ( connection con,
std::string const &  sql 
)

command constructor

Parameters
contakes a reference to the database connection type connection
sqlis the SQL string. The sql string can contain placeholder the question mark '?' is used as placeholder the command::bind methods or command::operator% syntax must be used to replace the placeholders
virtual sqlite::command::~command ( )
virtual

command destructor

Member Function Documentation

void sqlite::command::access_check ( )
protected
void sqlite::command::bind ( int  idx)

binds NULL to the given 1 based index

void sqlite::command::bind ( int  idx,
int  v 
)

binds the 32-Bit integer v to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
v32-Bit integer value which should replace the placeholder
void sqlite::command::bind ( int  idx,
boost::int64_t  v 
)

binds the 64-Bit integer v to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
v64-Bit integer value which should replace the placeholder
void sqlite::command::bind ( int  idx,
double  v 
)

binds the double v to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
vdouble value which should replace the placeholder
void sqlite::command::bind ( int  idx,
std::string const &  v 
)

binds the text/string v to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
vtext/string value which should replace the placeholder
void sqlite::command::bind ( int  idx,
void const *  buf,
size_t  buf_size 
)

binds the binary/blob buf to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
bufbinary/blob buf which should replace the placeholder
buf_sizesize in bytes of the binary buffer
void sqlite::command::bind ( int  idx,
std::vector< unsigned char > const &  v 
)

binds the binary/blob v to the given 1 based index

Parameters
idx1 based index of the placeholder within the sql statement
vbinary/blob buffer which should replace the placeholder v is a std::vector<unsigned char> const &
void sqlite::command::clear ( )

clear is used if you'd like to reuse a command object

bool sqlite::command::emit ( )

emit executes the sql command If you have used placeholders you must have replaced all placeholders

void sqlite::command::finalize ( )
private
struct sqlite3* sqlite::command::get_handle ( )
readprotected
command& sqlite::command::operator% ( null_type const &  p)

replacement for void command::bind(int idx); To use this operator% you have to use the global object nil Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pshould be nil
command& sqlite::command::operator% ( int  p)

replacement for void command::bind(int idx,int); Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pshould be a 32-Bit integer
command& sqlite::command::operator% ( boost::int64_t  p)

replacement for void command::bind(int idx,boost::int64_t); Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pshould be a 64-Bit integer
command& sqlite::command::operator% ( double  p)

replacement for void command::bind(int idx,double); Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pa double variable
command& sqlite::command::operator% ( std::string const &  p)

replacement for void command::bind(int idx,std::string const&); Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pshould be a Zero Terminated C-style string (char * or char const*), or a std::string object,
command& sqlite::command::operator% ( std::vector< unsigned char > const &  p)

replacement for void command::bind(int idx,std::vector<unsigned char> const&); Indexes are given automatically first call uses 1 as index, second 2 and so on

Parameters
pa constant reference to a std::vector<unsigned char> object (For blob/binary data)
bool sqlite::command::operator() ( )

works exactly like the method command::emit

void sqlite::command::prepare ( )
private
bool sqlite::command::step ( )
protected

Member Data Documentation

int sqlite::command::last_arg_idx
private

Definition at line 189 of file command.hpp.

connection& sqlite::command::m_con
private

Definition at line 184 of file command.hpp.

std::string sqlite::command::m_sql
private

Definition at line 185 of file command.hpp.

sqlite3_stmt* sqlite::command::stmt
protected

Definition at line 187 of file command.hpp.


The documentation for this struct was generated from the following file: