Messy commit. Testing suff and some improvements to how data is shown.
This commit is contained in:
parent
bebb3391c3
commit
3a13b7ffb4
59 changed files with 2045 additions and 716 deletions
2
pgsql/Pgsql_Col.cpp
Normal file
2
pgsql/Pgsql_Col.cpp
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
#include "Pgsql_Col.h"
|
||||
|
||||
39
pgsql/Pgsql_Col.h
Normal file
39
pgsql/Pgsql_Col.h
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
#ifndef PGSQL_COL_H
|
||||
#define PGSQL_COL_H
|
||||
|
||||
#include "Pgsql_Row.h"
|
||||
|
||||
namespace Pgsql {
|
||||
|
||||
class Col {
|
||||
public:
|
||||
explicit Col(Pgsql::Row &r)
|
||||
: row(r)
|
||||
{}
|
||||
|
||||
void reset() { col = -1; }
|
||||
Pgsql::Value nextValue()
|
||||
{
|
||||
return row.get(++col);
|
||||
}
|
||||
private:
|
||||
Pgsql::Row &row;
|
||||
int col = -1;
|
||||
};
|
||||
|
||||
// template <typename T>
|
||||
// void operator<<(T &s, Col &c)
|
||||
// {
|
||||
// s << c.nextValue();
|
||||
// }
|
||||
|
||||
template <typename T>
|
||||
Col& operator>>(Col &c, T &s)
|
||||
{
|
||||
s << c.nextValue();
|
||||
return c;
|
||||
}
|
||||
|
||||
} // end namespace Pgsql
|
||||
|
||||
#endif // PGSQL_COL_H
|
||||
|
|
@ -22,8 +22,8 @@ namespace Pgsql {
|
|||
*
|
||||
* The class takes ownership of data and will try to delete[] it.
|
||||
*/
|
||||
void addText(const char *data, Oid oid=oid_varchar);
|
||||
void add(const QString &s, Oid oid=oid_varchar);
|
||||
void addText(const char *data, Oid oid=VARCHAROID);
|
||||
void add(const QString &s, Oid oid=VARCHAROID);
|
||||
void addBinary(const char *data, int length, Oid oid);
|
||||
void clear();
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ namespace Pgsql {
|
|||
Value get(int col) const;
|
||||
//Value get(const char *colname) const;
|
||||
//bool get(int col, QString &s);
|
||||
|
||||
|
||||
private:
|
||||
const Result& m_result;
|
||||
int m_row;
|
||||
|
|
|
|||
|
|
@ -5,7 +5,8 @@
|
|||
using namespace Pgsql;
|
||||
|
||||
Value::Value(const char *val, Oid typ)
|
||||
: m_val(val), m_typ(typ)
|
||||
: m_val(val)
|
||||
, m_typ(typ)
|
||||
{}
|
||||
|
||||
QString Value::asQString() const
|
||||
|
|
@ -15,15 +16,30 @@ QString Value::asQString() const
|
|||
|
||||
Value::operator QString() const
|
||||
{
|
||||
return QString::fromUtf8(m_val);
|
||||
// if (isString())
|
||||
return QString::fromUtf8(m_val);
|
||||
// else
|
||||
// throw std::logic_error("Column type doesn't match requested type");
|
||||
}
|
||||
|
||||
Value::operator QDateTime() const
|
||||
{
|
||||
return QDateTime::fromString(asQString(),
|
||||
"yyyy-MM-dd hh:mm:ss");
|
||||
return QDateTime::fromString(asQString(), Qt::ISODateWithMs);
|
||||
// return QDateTime::fromString(asQString(),
|
||||
// "yyyy-MM-dd hh:mm:ss");
|
||||
}
|
||||
|
||||
Value::operator QDate() const
|
||||
{
|
||||
return QDate::fromString(asQString(), Qt::ISODate);
|
||||
}
|
||||
|
||||
Value::operator QTime() const
|
||||
{
|
||||
return QTime::fromString(asQString(), Qt::ISODateWithMs);
|
||||
}
|
||||
|
||||
|
||||
Value::operator std::string() const
|
||||
{
|
||||
return m_val;
|
||||
|
|
@ -54,6 +70,14 @@ Value::operator bool() const
|
|||
return std::strcmp(m_val, "t") == 0;
|
||||
}
|
||||
|
||||
bool Value::isString() const
|
||||
{
|
||||
return m_typ == CHAROID
|
||||
|| m_typ == VARCHAROID
|
||||
|| m_typ == TEXTOID
|
||||
;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//void operator<<(QString &s, const Value &v)
|
||||
|
|
|
|||
|
|
@ -17,12 +17,17 @@ namespace Pgsql {
|
|||
|
||||
operator QString() const;
|
||||
operator QDateTime() const;
|
||||
operator QDate() const;
|
||||
operator QTime() const;
|
||||
operator std::string() const;
|
||||
operator short() const;
|
||||
operator int() const;
|
||||
operator Oid() const;
|
||||
operator long long() const;
|
||||
operator bool() const;
|
||||
|
||||
bool isString() const;
|
||||
|
||||
private:
|
||||
const char *m_val;
|
||||
Oid m_typ;
|
||||
|
|
|
|||
|
|
@ -5,15 +5,95 @@
|
|||
|
||||
namespace Pgsql {
|
||||
|
||||
const Oid oid_bool = 16;
|
||||
const Oid oid_int2 = 21;
|
||||
const Oid oid_int4 = 23;
|
||||
const Oid oid_int8 = 20;
|
||||
const Oid oid_float4 = 700;
|
||||
const Oid oid_float8 = 701;
|
||||
const Oid oid_numeric = 1700;
|
||||
const Oid oid_oid = 26;
|
||||
const Oid oid_varchar = 1043;
|
||||
const Oid BOOLOID = 16;
|
||||
const Oid BYTEAOID = 17;
|
||||
const Oid CHAROID = 18;
|
||||
const Oid NAMEOID = 19;
|
||||
const Oid INT8OID = 20;
|
||||
const Oid INT2OID = 21;
|
||||
const Oid INT2VECTOROID = 22;
|
||||
const Oid INT4OID = 23;
|
||||
const Oid REGPROCOID = 24;
|
||||
const Oid TEXTOID = 25;
|
||||
const Oid OIDOID = 26;
|
||||
const Oid TIDOID = 27;
|
||||
const Oid XIDOID = 28;
|
||||
const Oid CIDOID = 29;
|
||||
const Oid OIDVECTOROID = 30;
|
||||
const Oid JSONOID = 114;
|
||||
const Oid XMLOID = 142;
|
||||
const Oid PGNODETREEOID = 194;
|
||||
const Oid PGDDLCOMMANDOID = 32;
|
||||
const Oid POINTOID = 600;
|
||||
const Oid LSEGOID = 601;
|
||||
const Oid PATHOID = 602;
|
||||
const Oid BOXOID = 603;
|
||||
const Oid POLYGONOID = 604;
|
||||
const Oid LINEOID = 628;
|
||||
const Oid FLOAT4OID = 700;
|
||||
const Oid FLOAT8OID = 701;
|
||||
const Oid ABSTIMEOID = 702;
|
||||
const Oid RELTIMEOID = 703;
|
||||
const Oid TINTERVALOID = 704;
|
||||
const Oid UNKNOWNOID = 705;
|
||||
const Oid CIRCLEOID = 718;
|
||||
const Oid CASHOID = 790;
|
||||
const Oid MACADDROID = 829;
|
||||
const Oid INETOID = 869;
|
||||
const Oid CIDROID = 650;
|
||||
const Oid INT2ARRAYOID = 1005;
|
||||
const Oid INT4ARRAYOID = 1007;
|
||||
const Oid TEXTARRAYOID = 1009;
|
||||
const Oid OIDARRAYOID = 1028;
|
||||
const Oid FLOAT4ARRAYOID = 1021;
|
||||
const Oid ACLITEMOID = 1033;
|
||||
const Oid CSTRINGARRAYOID = 1263;
|
||||
const Oid BPCHAROID = 1042;
|
||||
const Oid VARCHAROID = 1043;
|
||||
const Oid DATEOID = 1082;
|
||||
const Oid TIMEOID = 1083;
|
||||
const Oid TIMESTAMPOID = 1114;
|
||||
const Oid TIMESTAMPTZOID = 1184;
|
||||
const Oid INTERVALOID = 1186;
|
||||
const Oid TIMETZOID = 1266;
|
||||
const Oid BITOID = 1560;
|
||||
const Oid VARBITOID = 1562;
|
||||
const Oid NUMERICOID = 1700;
|
||||
const Oid REFCURSOROID = 1790;
|
||||
const Oid REGPROCEDUREOID = 2202;
|
||||
const Oid REGOPEROID = 2203;
|
||||
const Oid REGOPERATOROID = 2204;
|
||||
const Oid REGCLASSOID = 2205;
|
||||
const Oid REGTYPEOID = 2206;
|
||||
const Oid REGROLEOID = 4096;
|
||||
const Oid REGNAMESPACEOID = 4089;
|
||||
const Oid REGTYPEARRAYOID = 2211;
|
||||
const Oid UUIDOID = 2950;
|
||||
const Oid LSNOID = 3220;
|
||||
const Oid TSVECTOROID = 3614;
|
||||
const Oid GTSVECTOROID = 3642;
|
||||
const Oid TSQUERYOID = 3615;
|
||||
const Oid REGCONFIGOID = 3734;
|
||||
const Oid REGDICTIONARYOID = 3769;
|
||||
const Oid JSONBOID = 3802;
|
||||
const Oid INT4RANGEOID = 3904;
|
||||
const Oid RECORDOID = 2249;
|
||||
const Oid RECORDARRAYOID = 2287;
|
||||
const Oid CSTRINGOID = 2275;
|
||||
const Oid ANYOID = 2276;
|
||||
const Oid ANYARRAYOID = 2277;
|
||||
const Oid VOIDOID = 2278;
|
||||
const Oid TRIGGEROID = 2279;
|
||||
const Oid EVTTRIGGEROID = 3838;
|
||||
const Oid LANGUAGE_HANDLEROID = 2280;
|
||||
const Oid INTERNALOID = 2281;
|
||||
const Oid OPAQUEOID = 2282;
|
||||
const Oid ANYELEMENTOID = 2283;
|
||||
const Oid ANYNONARRAYOID = 2776;
|
||||
const Oid ANYENUMOID = 3500;
|
||||
const Oid FDW_HANDLEROID = 3115;
|
||||
const Oid TSM_HANDLEROID = 3310;
|
||||
const Oid ANYRANGEOID = 3831;
|
||||
|
||||
|
||||
class Params;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@ greaterThan(QT_MAJOR_VERSION, 4): QT += widgets sql
|
|||
TARGET = pgsql
|
||||
TEMPLATE = lib
|
||||
|
||||
INCLUDEPATH += C:\prog\include C:\Prog\include\pgsql C:\VSproj\boost32\include\boost-1_65_1
|
||||
INCLUDEPATH += C:\prog\include \
|
||||
C:\Prog\include\pgsql \
|
||||
C:\VSproj\boost32\include\boost-1_65_1
|
||||
|
||||
DEFINES += WIN32_LEAN_AND_MEAN NOMINMAX
|
||||
#LIBS += -LC:/prog/boost/lib -Lc:/prog/lib libpq.lib fmt.lib User32.lib ws2_32.lib
|
||||
LIBS += -LC:/PROG/LIB -lws2_32 -llibpq
|
||||
|
|
@ -31,14 +34,16 @@ SOURCES += Pgsql_Connection.cpp \
|
|||
Pgsql_Params.cpp \
|
||||
Pgsql_Result.cpp \
|
||||
Pgsql_Row.cpp \
|
||||
Pgsql_Value.cpp
|
||||
Pgsql_Value.cpp \
|
||||
Pgsql_Col.cpp
|
||||
|
||||
HEADERS += Pgsql_Connection.h \
|
||||
Pgsql_Params.h \
|
||||
Pgsql_Result.h \
|
||||
Pgsql_Row.h \
|
||||
Pgsql_Value.h \
|
||||
Pgsql_declare.h
|
||||
Pgsql_declare.h \
|
||||
Pgsql_Col.h
|
||||
|
||||
#FORMS +=
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue