2013-06-04 42 views
3

我想知道是否可以直接从C/C++与libpq而不是使用字符串进行参数化查询,如果该代码应该如何看起来像?libpq,插入参数

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$2nParams是提供的参数的数量;它是阵列的长度paramTypes[]paramValues[],paramLengths[]paramFormats[]

+0

好的信息,谢谢。我更喜欢一些真实生活的例子。 –

+0

它也推荐你使用类型转换参数,所以'$ 1 :: integer,$ 2 :: varchar'等等,所以你可以通过''NULL'''paramTypes' arg – user3791372