2013-06-04 7 views
3

Мне интересно, могу ли я сделать параметризованные запросы непосредственно из C/C++ с помощью libpq вместо использования строк, и как сделать этот код похожим?libpq, insert с параметрами

string tblins = ""; 
tblins = "INSERT INTO " + commtable + " " 
     "(vdoc, bdoc, mytime, txml) VALUES (" 
     "'" + cxml.vdoc + "', " 
      + cxml.bdoc + ", " //integer 
     "'" + cxml.mytime + "', " 
     "'" + cxml.txml + "')"; 

result = PQexec(conn, tblins.c_str()); 

Спасибо.

ответ

4

Да, вы можете использовать функцию PQexecParams, как описано in the documentation.

Если используются параметры, они упоминаются в командной строке как $1, $2 и т.д. nParams это число параметров, поставляемых; это длина массивов paramTypes[], paramValues[], paramLengths[] и paramFormats[].

+0

Приятная информация, спасибо. Я бы предпочел пример реальной жизни. –

+0

также рекомендуется указать параметры типа, поэтому '$ 1 :: integer, $ 2 :: varchar' и т. Д., Поэтому вы можете передать' NULL' для аргумента paramTypes' arg – user3791372