From 4013f18f0e9f257e6c0d7ffecdec3cfc9bf0db0d Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 31 Dec 2016 04:59:00 +0000 Subject: Do lots more work with compile time formatter instead runtime formatters --- libpqpp/pq-cursorselectcommand.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) (limited to 'libpqpp/pq-cursorselectcommand.cpp') diff --git a/libpqpp/pq-cursorselectcommand.cpp b/libpqpp/pq-cursorselectcommand.cpp index ab21f66..29e29f5 100644 --- a/libpqpp/pq-cursorselectcommand.cpp +++ b/libpqpp/pq-cursorselectcommand.cpp @@ -2,6 +2,7 @@ #include "pq-connection.h" #include "pq-column.h" #include "pq-error.h" +#include PQ::CursorSelectCommand::CursorSelectCommand(Connection * conn, const std::string & sql, unsigned int no) : DB::Command(sql), @@ -29,32 +30,27 @@ PQ::CursorSelectCommand::~CursorSelectCommand() } } +AdHocFormatter(PQCursorSelectDeclare, "DECLARE %? CURSOR FOR %?"); std::string PQ::CursorSelectCommand::mkdeclare() const { std::string psql; - psql.reserve(sql.length() + 40); - psql += "DECLARE "; - psql += stmntName; - psql += " CURSOR FOR "; prepareSql(psql, sql); - return psql; + return PQCursorSelectDeclare::get(stmntName, psql); } +AdHocFormatter(PQCursorSelectFetch, "FETCH %? IN %?"); std::string PQ::CursorSelectCommand::mkfetch() const { - char buf[BUFSIZ]; - snprintf(buf, sizeof(buf), "FETCH %d IN %s", fTuples, stmntName.c_str()); - return buf; + return PQCursorSelectFetch::get(fTuples, stmntName); } +AdHocFormatter(PQCursorSelectClose, "CLOSE %?"); std::string PQ::CursorSelectCommand::mkclose() const { - char buf[BUFSIZ]; - snprintf(buf, sizeof(buf), "CLOSE %s", stmntName.c_str()); - return buf; + return PQCursorSelectClose::get(stmntName); } void -- cgit v1.2.3