6#ifndef PT_DB_ISTATEMENT_H
7#define PT_DB_ISTATEMENT_H
9#include <Pt/RefCounted.h>
11#include <Pt/Db/Blob.h>
32class PT_DB_API IStatement :
public RefCounted
34 friend class IConnection;
37 typedef std::size_t size_type;
42 {
return _executeFinished; }
47 {
return _selectFinished; }
52 {
return _lastInsertId; }
65 virtual void setNull(
const std::string& col) = 0;
69 virtual void setBool(
const std::string& col,
bool data) = 0;
73 virtual void setInt(
const std::string& col,
int data) = 0;
77 virtual void setUnsigned(
const std::string& col,
unsigned data) = 0;
81 virtual void setFloat(
const std::string& col,
float data) = 0;
85 virtual void setDouble(
const std::string& col,
double data) = 0;
89 virtual void setChar(
const std::string& col,
char data) = 0;
93 virtual void setString(
const std::string& col,
const std::string& data) = 0;
97 virtual void setBlob(
const std::string& col,
const Blob& data) = 0;
101 virtual void setDate(
const std::string& col,
const Date& data) = 0;
105 virtual void setTime(
const std::string& col,
const Time& data) = 0;
112 explicit IStatement(IConnection* conn)
118 virtual ICursor* onCreateCursor() = 0;
121 virtual size_type onExecute() = 0;
123 virtual void onBeginExec() = 0;
125 virtual size_type onEndExec() = 0;
128 virtual Result onSelect() = 0;
130 virtual Row onSelectRow() = 0;
132 virtual Value onSelectValue() = 0;
134 virtual void onBeginSelect() = 0;
136 virtual Result onEndSelect() = 0;
139 void setLastInsertId(
long long id)
140 { _lastInsertId = id; }
146 long long _lastInsertId;
Combined Date and Time value.
Definition DateTime.h:66
Date expressed in year, month, and day.
Definition Date.h:104
Copy-on-write binary large object.
Definition Blob.h:144
Database connection backend.
Definition IConnection.h:44
Batch-cursor backend.
Definition ICursor.h:26
virtual void setDate(const std::string &col, const Date &data)=0
Sets the host variable col to data.
virtual void setTime(const std::string &col, const Time &data)=0
Sets the host variable col to data.
long long lastInsertId() const
Returns the generated row id of the last insert.
Definition IStatement.h:51
virtual void setString(const std::string &col, const std::string &data)=0
Sets the host variable col to data.
virtual void clear()=0
Sets all host variables to NULL.
Signal & selectFinished()
Signal emitted when an asynchronous select completes.
Definition IStatement.h:46
virtual void setUnsigned(const std::string &col, unsigned data)=0
Sets the host variable col to data.
virtual void setBool(const std::string &col, bool data)=0
Sets the host variable col to data.
virtual void setNull(const std::string &col)=0
Sets the host variable col to NULL.
virtual void setDatetime(const std::string &col, const DateTime &data)=0
Sets the host variable col to data.
Signal & executeFinished()
Signal emitted when asynchronous execution completes.
Definition IStatement.h:41
virtual void setFloat(const std::string &col, float data)=0
Sets the host variable col to data.
virtual void setInt(const std::string &col, int data)=0
Sets the host variable col to data.
virtual void setBlob(const std::string &col, const Blob &data)=0
Sets the host variable col to data.
virtual void setDouble(const std::string &col, double data)=0
Sets the host variable col to data.
IConnection * connection()
Returns the connection that owns this statement.
Definition IStatement.h:56
virtual void setChar(const std::string &col, char data)=0
Sets the host variable col to data.
Buffered query result with random-access rows.
Definition Result.h:42
One row of a buffered query result.
Definition Row.h:34
One column value of a query result.
Definition Value.h:35
Multicast Signal to call multiple slots.
Definition Signal.h:190
Time expressed in hours, minutes, seconds and milliseconds.
Definition Time.h:98
Portable SQL database access.
Core module.
Definition Allocator.h:33