diff options
| author | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-12-07 14:26:09 +0000 | 
|---|---|---|
| committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2015-12-07 14:26:09 +0000 | 
| commit | 2a3f8ddab3542bb0b7c456780eaf53f2e4dc363e (patch) | |
| tree | fa23d5779e2dc525348185a6c1755f3889f40d81 /libpqpp/command.cpp | |
| parent | Improve connection failure detection (diff) | |
| download | libdbpp-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.cpp | 21 | 
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) {  | 
