summaryrefslogtreecommitdiff
path: root/libpqpp/command.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2015-12-07 14:26:09 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2015-12-07 14:26:09 +0000
commit2a3f8ddab3542bb0b7c456780eaf53f2e4dc363e (patch)
treefa23d5779e2dc525348185a6c1755f3889f40d81 /libpqpp/command.cpp
parentImprove connection failure detection (diff)
downloadlibdbpp-postgresql-2a3f8ddab3542bb0b7c456780eaf53f2e4dc363e.tar.bz2
libdbpp-postgresql-2a3f8ddab3542bb0b7c456780eaf53f2e4dc363e.tar.xz
libdbpp-postgresql-2a3f8ddab3542bb0b7c456780eaf53f2e4dc363e.zip
Merge select and modify command's SQL parserlibdbpp-postgresql-0.9.4
Diffstat (limited to 'libpqpp/command.cpp')
-rw-r--r--libpqpp/command.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/libpqpp/command.cpp b/libpqpp/command.cpp
index ba12574..94079da 100644
--- a/libpqpp/command.cpp
+++ b/libpqpp/command.cpp
@@ -25,6 +25,27 @@ PQ::Command::~Command()
}
void
+PQ::Command::prepareSql(std::string & psql, const std::string & sql)
+{
+ char buf[4];
+ int p = 1;
+ bool inquote = false;
+ for(std::string::const_iterator i = sql.begin(); i != sql.end(); ++i) {
+ if (*i == '?' && !inquote) {
+ snprintf(buf, 4, "$%d", p++);
+ psql += buf;
+ }
+ else if (*i == '\'') {
+ inquote = !inquote;
+ psql += *i;
+ }
+ else {
+ psql += *i;
+ }
+ }
+}
+
+void
PQ::Command::paramsAtLeast(unsigned int n)
{
if (values.size() <= n) {