inline QVariant pgsqlCStrToVariant(const pqxx::result::field& r) { switch (r.type()) { case BOOLOID: return QString::fromLatin1(r.c_str(), r.size()) == "true"; //!< @todo check formatting case INT2OID: case INT4OID: case INT8OID: return r.as(int()); case FLOAT4OID: case FLOAT8OID: case NUMERICOID: return r.as(double()); case DATEOID: return QString::fromUtf8(r.c_str(), r.size()); //!< @todo check formatting case TIMEOID: return QString::fromUtf8(r.c_str(), r.size()); //!< @todo check formatting case TIMESTAMPOID: return QString::fromUtf8(r.c_str(), r.size()); //!< @todo check formatting case BYTEAOID: return KDb::pgsqlByteaToByteArray(r.c_str(), r.size()); case BPCHAROID: case VARCHAROID: case TEXTOID: return QString::fromUtf8(r.c_str(), r.size()); //utf8? default: return QString::fromUtf8(r.c_str(), r.size()); //utf8? } }
static QByteArray pgsqlByteaToByteArray(const pqxx::result::field& r) { return KexiDB::pgsqlByteaToByteArray(r.c_str(), r.size()); }