1.3 执行命令的函数 数据库连接成功地建立以后,可以用本节介绍的函数发送SQL命令给数据库执行。 1.3.1 主要的函数 PQexec 发送一个命令给数据库执行,然后等待命令执行结束。 PGresult *PQexec(PGconn *conn, const char *command); 如果返回值是一个空指针,表示遇到了错误,调用PQerrorMessage 可以得到详细的错误信息。 可以在同一个命令字符串中包含多条SQL命令,不同的SQL命令用分号隔开。如果PQexec中的命令字符串含有多条命令,而且这些命令中没有BEGIN和COMMIT,这些命令将在同一个事务里面被执行,如果其中含有BEGIN和COMMIT,则这些命令将在多个事务中被执行。只要有一条命令执行失败,剩下的命令就会被停止执行,返回的PGresult中包含相应的错误信息。 PQexecParams 发送一个命令给数据库执行,然后等待命令执行结束。这个函数可以执行带参数的SQL命令。 PGresult *PQexecParams(PGconn *conn, const char *command, int nParams, const Oid *paramTypes, const char * const *paramValues, const int *paramLengths, const int *paramFormats, int resultFormat); PQexecParams 与PQexec类似,但它还具备其它的功能,包括SQL命令可以带有参数,指定查询结果用二进制或文本的格式表示。 该函数的参数如下: conn 数据库连接对象。 command 被执行的SQL命令。如果里面含有参数,用$1, $2,…,$n表示。 nParams 被执行的SQL命令中含有的参数的个数。它也是数组paramTypes[]、paramValues[]、paramLengths[]和paramFormats[]的长度,如果nParams的值是0,这些指针的值应该是NULL。 paramTypes[] 指定SQL命令中对应的参数的数据类型,用OID表示。如果paramTypes是一个空指针或者数组paramTypes的某个元素的值是0,数据库会自动推断对应的参数的数据类型。 |