diff --git a/uppsrc/PostgreSQL/PostgreSQL.cpp b/uppsrc/PostgreSQL/PostgreSQL.cpp index 9b233dbe7..f0955759f 100644 --- a/uppsrc/PostgreSQL/PostgreSQL.cpp +++ b/uppsrc/PostgreSQL/PostgreSQL.cpp @@ -512,7 +512,7 @@ bool PostgreSQLConnection::Execute() if(*s == '\'' || *s == '\"') s = PostgreSQLReadString(s, query); else { - if(*s == '?') { + if(*s == '?' && !noquestionparams) { if(pi >= param.GetCount()) { session.SetError("Invalid number of parameters", statement); return false; diff --git a/uppsrc/PostgreSQL/PostgreSQL.h b/uppsrc/PostgreSQL/PostgreSQL.h index 67ab70602..9724424e3 100644 --- a/uppsrc/PostgreSQL/PostgreSQL.h +++ b/uppsrc/PostgreSQL/PostgreSQL.h @@ -59,6 +59,7 @@ private: String conns; bool keepalive; bool hex_blobs; + bool noquestionparams = false; VectorMap pkache; @@ -86,6 +87,7 @@ public: void SetCharset(byte chrset) { charset = chrset; } void KeepAlive(bool b = true) { keepalive = b; DoKeepAlive(); } + void NoQuestionParams(bool b = true) { noquestionparams = b; } String GetUser() { return PQuser(conn); } operator PGconn * () { return conn; }