diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-05-02 18:41:53 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-05-02 18:41:53 +0100 |
commit | fea1965942d2b48f4c0f6c50de3113cf02d6e33e (patch) | |
tree | fdd839f86f23953355fb93e1d0c0f6dba0123fbb /libpqpp | |
parent | Centralize all the column reference storage logic (diff) | |
download | libdbpp-postgresql-fea1965942d2b48f4c0f6c50de3113cf02d6e33e.tar.bz2 libdbpp-postgresql-fea1965942d2b48f4c0f6c50de3113cf02d6e33e.tar.xz libdbpp-postgresql-fea1965942d2b48f4c0f6c50de3113cf02d6e33e.zip |
Add support for RDBMS boolean/bit types
Diffstat (limited to 'libpqpp')
-rw-r--r-- | libpqpp/column.cpp | 2 | ||||
-rw-r--r-- | libpqpp/command.cpp | 7 | ||||
-rw-r--r-- | libpqpp/command.h | 8 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libpqpp/column.cpp b/libpqpp/column.cpp index 745fdd5..c43e4ab 100644 --- a/libpqpp/column.cpp +++ b/libpqpp/column.cpp @@ -32,7 +32,7 @@ PQ::Column::apply(DB::HandleField & h) const h.string(PQgetvalue(sc->execRes, sc->tuple, colNo), PQgetlength(sc->execRes, sc->tuple, colNo)); break; case 16: //BOOLOID: - h.integer(PQgetvalue(sc->execRes, sc->tuple, colNo)[0] == 't' ? 1 : 0); + h.boolean(PQgetvalue(sc->execRes, sc->tuple, colNo)[0] == 't' ? 1 : 0); break; case 21: //INT2OID: case 23: //INT4OID: diff --git a/libpqpp/command.cpp b/libpqpp/command.cpp index abd37e6..ba12574 100644 --- a/libpqpp/command.cpp +++ b/libpqpp/command.cpp @@ -81,6 +81,13 @@ PQ::Command::bindParamI(unsigned int n, long long unsigned int v) formats[n] = 0; } void +PQ::Command::bindParamB(unsigned int n, bool v) +{ + paramsAtLeast(n); + lengths[n] = asprintf(&values[n], "%s", v ? "true" : "false"); + formats[n] = 0; +} +void PQ::Command::bindParamF(unsigned int n, double v) { paramsAtLeast(n); diff --git a/libpqpp/command.h b/libpqpp/command.h index e78722b..a3601c4 100644 --- a/libpqpp/command.h +++ b/libpqpp/command.h @@ -19,14 +19,16 @@ namespace PQ { void bindParamI(unsigned int, long unsigned int); void bindParamI(unsigned int, long long unsigned int); + void bindParamB(unsigned int, bool); + void bindParamF(unsigned int, double); void bindParamF(unsigned int, float); - + void bindParamS(unsigned int, const Glib::ustring&); - + void bindParamT(unsigned int, const boost::posix_time::time_duration &); void bindParamT(unsigned int, const boost::posix_time::ptime &); - + void bindNull(unsigned int); protected: const std::string stmntName; |