20#ifndef KEXIDB_CURSOR_PQXX_H
21#define KEXIDB_CURSOR_PQXX_H
25#include <kexidb/cursor.h>
26#include <kexidb/connection.h>
27#include <kexidb/utils.h>
35#include <migration/pqxx/pg_type.h>
39class pqxxSqlCursor:
public Cursor {
41 virtual ~pqxxSqlCursor();
43 virtual TQVariant value(uint i);
44 virtual const char**
rowData()
const;
45 virtual void storeCurrentRow(
RowData &data)
const;
56 pqxxSqlCursor(Connection* conn,
const TQString& statement = TQString(), uint
options = NoOptions );
57 pqxxSqlCursor(Connection* conn, QuerySchema&
query, uint
options = NoOptions );
62 virtual void drv_bufferMovePointerTo(TQ_LLONG to);
63 virtual bool drv_open();
64 virtual bool drv_close();
65 virtual void drv_getNextRecord();
66 virtual void drv_getPrevRecord();
71 pqxx::connection* my_conn;
72 TQVariant pValue(uint pos)
const;
73 bool m_implicityStarted : 1;
74 friend class pqxxSqlConnection;
77inline TQVariant pgsqlCStrToVariant(
const PQXX_FIELD_CLASS& r)
82 return TQString::fromLatin1(r.c_str(), r.size())==
"true";
90 return r.as(
double());
92 return TQString::fromUtf8(r.c_str(), r.size());
94 return TQString::fromUtf8(r.c_str(), r.size());
96 return TQString::fromUtf8(r.c_str(), r.size());
102 return TQString::fromUtf8(r.c_str(), r.size());
104 return TQString::fromUtf8(r.c_str(), r.size());
Provides database cursor functionality.
virtual void drv_appendCurrentRecordToBuffer()=0
virtual void drv_bufferMovePointerNext()=0
virtual void drv_bufferMovePointerPrev()=0
virtual const char ** rowData() const =0
QuerySchema * query() const
virtual void drv_clearServerResult()=0
High-level database connectivity library with database backend drivers.
TQValueVector< TQVariant > RowData
structure for storing single record with type information
KEXI_DB_EXPORT TQByteArray pgsqlByteaToByteArray(const char *data, int length)