Tag: libpq

如何转储PGresult

我正在尝试调试访问postgres数据库的C程序。 我想使用一些postgres提供的例程来转储PGresult的内容。 是否有一个postgres提供的例程,将以人类可读的方式转储PGresult? 我将添加它作为将转储PGresult内容的日志记录的选项。 以下是非SELECT命令的相关问题: 如何为非SELECT命令转储PGresult

将C变量传递给SQL命令

我是使用libpq并在postgresql数据库上工作的新手。 所以,我可以使用C程序插入/更新/等一个postgresql数据库,只要我在引号内给出实际值。 我想知道如何在命令中传递字符串/整数变量?? 例如,以下代码将一个名为“comment”的列添加到现有表“people”中,其中包含“TRUE”默认值。 我需要将“comment”的值更新为“FALSE”,其中id = 2。 #include #include #include #include void exit_nicely(PGconn *conn) { PQfinish(conn); exit(1); } int main() { PGconn *conn; PGresult *res; int nFields; int row_count=0,col_count=0; int row=0; int col=0; conn = PQconnectdb(“dbname=test host=localhost user=postgres password=xxx”); if(PQstatus(conn) == CONNECTION_BAD) { fprintf(stderr, “Connection to database \”%s\” failed.\n”, PQerrorMessage(conn)); fprintf(stderr, “%s”, PQerrorMessage(conn)); exit_nicely(conn); } […]

ODBC v Libpq:PostgreSQL的C库

我将使用C库连接和使用PostgreSQL数据库,我想知道ODBC和Libpq的优缺点是什么。 据我所知,libpq似乎更快,但我无法获得任何明确的答案或基准。 还有,还有其他任何可能比ODBC / Libpq更好的库。

使用远程机器的libpq在PostgreSQL中插入二进制大对象(BLOB)

你能给出一个使用libpq从远程机器在PostgreSQL数据库中插入二进制数据的例子。 我的第二个问题是:是否有任何其他API比使用C ++的libpq更有效。 谢谢

如何从网络管理双重的结束

我对这个问题的答案有一个大问题。 在c ++中交换双位的比特 然而,这个问题或多或少都是我搜索的:我从网络上收到一个双,我想在我的机器上正确编码。 在我收到int的情况下,我使用ntohl执行此代码: int * piData = reinterpret_cast((void*)pData); //manage endianness of incomming network data unsigned long ulValue = ntohl(*piData); int iValue = static_cast(ulValue); 但是在我得到double的情况下,我不知道该怎么做。 该问题的答案建议: template void swap_endian(T& pX) { char& raw = reinterpret_cast(pX); std::reverse(&raw, &raw + sizeof(T)); } 但是,如果我引用此网站 : The ntohl() function converts the unsigned integer netlong from network byte order […]