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 <pqxx/binarystring>
36#include <migration/pqxx/pg_type.h>
40class pqxxSqlCursor:
public Cursor {
42 virtual ~pqxxSqlCursor();
44 virtual TQVariant value(uint i);
45 virtual const char**
rowData()
const;
46 virtual void storeCurrentRow(
RowData &data)
const;
57 pqxxSqlCursor(Connection* conn,
const TQString& statement = TQString(), uint
options = NoOptions );
58 pqxxSqlCursor(Connection* conn, QuerySchema&
query, uint
options = NoOptions );
63 virtual void drv_bufferMovePointerTo(TQ_LLONG to);
64 virtual bool drv_open();
65 virtual bool drv_close();
66 virtual void drv_getNextRecord();
67 virtual void drv_getPrevRecord();
72 pqxx::connection* my_conn;
73 TQVariant pValue(uint pos)
const;
74 bool m_implicityStarted : 1;
76 friend class pqxxSqlConnection;
79inline TQVariant pgsqlCStrToVariant(
const PQXX_FIELD_CLASS& r)
84 return TQString::fromLatin1(r.c_str(), r.size())==
"true";
92 return r.as(
double());
94 return TQString::fromUtf8(r.c_str(), r.size());
96 return TQString::fromUtf8(r.c_str(), r.size());
98 return TQString::fromUtf8(r.c_str(), r.size());
104 return TQString::fromUtf8(r.c_str(), r.size());
106 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)