问题标签 [libpqxx]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
788 浏览

postgresql - 为什么我不能按名称访问列?

示例代码:

我的输出如下

第一列名称是“Name”,根据字符串“Name”测试行名称会产生一个真实的语句。但是当我通过那个字符串访问它时,我得到了一个异常。

0 投票
1 回答
2157 浏览

c++ - libpqxx:连接过程结束后如何重新连接到 Postgresql 数据库

我通过 libpqxx 实例化一个 PostgreSQL 连接。我查询数据库并得到正确的响应。之后我尝试了以下错误案例:在创建 pqxx::connection 实例后,我暂停我的程序,从 Linux 的命令 shell 手动终止 Postgre 的连接进程并恢复程序。它一直持续到它尝试创建新的事务 pqxx::work 并抛出 pqxx::broken_connection。我处理此异常并尝试通过调用 pqxx::connection::activate() 重新连接,但另一个 pqxx::broken_connection 被抛出。如何在不实例化另一个 pqxx::connection 的情况下重新连接到 DB?

PS再激活不受抑制。我使用标准连接类型 -

0 投票
1 回答
1080 浏览

c++ - 错误:没有使用 union_set 调用“get(long unsigned int*&, long unsigned int&)”的匹配函数

这段代码

给出了这个错误和许多其他关于 get

/usr/include/boost/pending/detail/disjoint_sets.hpp:59:33: error: no matching function for call to 'get(long unsigned int*&, long unsigned int&)'</p>

我正在使用捆绑的属性。

等级和父类型定义是全局声明的。

如何解决此错误?


我正在使用 libpqxx,查找所有外键关系的查询在这里

0 投票
2 回答
9377 浏览

c++ - opencv二进制数据jpg图像到cv::Mat

我想在来自 postgresql 数据库的 c++ opencv 中加载图像。图像,jpg 扩展名,作为二进制数据(bytea 类型)存储在基础中,我可以通过 libpqxx 访问它。

问题是我不知道如何将数据转换为 cv::Mat 实例。对于常规图像,我可以使用 imread('myImage.jpg', ...),但在这种情况下,我什至无法在 Mat 的数据属性中加载数据库图像,因为它是 jpeg 而不是 bmp。

任何想法 ?是否有一些我可以使用的 opencv 方法可以直接理解二进制数据并将其转换为适当的结构?imdecode() 函数似乎用于位图数据。

编辑:Berak,使用向量 imdecode 函数返回空矩阵会发生什么“如果缓冲区太短或包含无效数据,则返回空矩阵/图像。” 这是代码:

我错过了什么?

0 投票
1 回答
374 浏览

c++ - 致命错误:找不到“libpq++”文件

我很想在我的 C++ 项目中使用 libpq++ 库,但我无法让它工作。

到目前为止,我已经libpqxx-dev libpqxx-4.0在我的 Ubuntu 14.04 上安装了软件包,并为 clang++ 提供了 -llibpq++。

但是,无论我做什么,我仍然会收到以下错误:

似乎我没有正确安装 libpq++,但我真的没有看到任何问题。任何帮助将不胜感激。

0 投票
1 回答
8693 浏览

c++ - pqxx 重用/重新激活工作事务

我想将 pqxx::work 用于多个查询和承诺,而提交功能阻止我再次使用它。这是一个简单的例子:

当我尝试插入 'bar' 值时,在提交之后,我得到一个 pqxx::usage_error :Error executing query. Attempt to activate transaction<READ COMMITTED> which is already closed

提交更改后如何避免关闭连接?我可以使用 G_work=pqxx::work(G_connexion) 或其他的后续等效项来重置 G_work 吗?此外,一个错误的请求不应该使整个进程崩溃,而只是一个正在进行的请求(G_work 在失败后仍然可用)。

我必须保留相同的变量 G_Work 因为它将是从程序中的许多地方调用的全局变量。

0 投票
1 回答
1695 浏览

c++ - 尝试使用 Oracle Solaris Studio 12.3 在 Solaris 10 上编译 libpqxx-4.0.1 时出错

问题描述

我无法使用 Solaris Studio 12.3 在 Solaris 10 上编译 libpqxx-4.0.1。

背景

当我需要 libpqxx 时,我做的第一件事就是在 OpenCSW 中使用/opt/csw/bin/pkgutil -a libpqxx. 但是,OpenCSW 中的软件包被列为版本“5.0,REV=2012.05.06”,并且在 OpenCSW网站上查看 CSWlibpqxx5-0 似乎表明这是一个旧的、不稳定的快照。我想要一个稳定的版本。

我从 libpqxx 网站下载了 libpqxx-4.0.1.tar.gz 并编译了它。自从g++我在我的$PATH. 有效。一切都很顺利。我能够SELECT从我的数据库等等。

然后我进入了对我的代码最重要的阶段;与专有的 C++ API 进行通信。g++在我尝试链接到此 API 的库后,我的代码将不再编译。API 包括我之前使用CC. 这些示例不使用 g++. 我想我也必须使用CCas 来编译我的代码,而不是使用g++. 我的代码无法使用CC. g++编译后的 libpqxx-4.0.1有一些CC不喜欢的地方。

因此,我决定我需要使用CC也编译 libpqxx-4.0.1,而不是使用g++.

采取的步骤

为了消除潜在错误配置环境引起的问题(自 2012 年以来,我一直在系统上使用我的帐户,随着时间的推移,各种环境变量等已经积累),我在系统上创建了一个具有干净主目录的新用户。

下面是我接下来所做的记录,导致构建错误。

-bash-3.2$ pwd

-bash-3.2$ ls -al

-bash-3.2$ /usr/sfw/bin/gtar xf libpqxx-4.0.1.tar.gz

Python 2.4.6,/usr/bin/python在 Solaris 10 中遇到了脚本问题,所以我做了一个快速而肮脏的补丁。

-bash-3.2$ diff libpqxx-4.0.1/tools/splitconfig splitconfig

-bash-3.2$ cp splitconfig libpqxx-4.0.1/tools/

$PATH在这一点上只是/usr/bin

-bash-3.2$ echo $PATH

我需要ld。它位于/usr/ccs/bin.

-bash-3.2$ export PATH=$PATH:/usr/ccs/bin

CC来自 Oracle Solaris Studio 12.3。(请参阅标题附加信息下的详细信息。)

-bash-3.2$ which CC

-bash-3.2$ cd libpqxx-4.0.1

-bash-3.2$ ./configure --prefix=/var/tmp/build/install_test --enable-shared --enable-documentation

makefrom/usr/ccs/bin之前无法构建它,所以现在我尝试使用 dmakeOracle Solaris Studio 12.3。

-bash-3.2$ which make

-bash-3.2$ which dmake

-bash-3.2$ dmake

附加信息

-bash-3.2$ cat /etc/release

-bash-3.2$ /usr/bin/version

-bash-3.2$ pkgchk -l -p /usr/bin/CC

-bash-3.2$ pkginfo | grep SPRO

0 投票
1 回答
1378 浏览

c++ - pqxx 返回刚刚插入的行的 id

我正在使用 c++ 4.8(可用 4.9)和 pqxx 驱动程序版本。4.0.1。postgresdb 是最新的稳定版。

我的问题全在于复杂性和资源平衡:

我需要对数据库执行插入(并且可以选择 pqxx::result),并且该表中的 id 是基于 nextval(table_seq_id)

结果是否可以获得插入行的ID?有一个解决方法可以按顺序询问 db 关于 currentvalue 并只需插入带有 currentvalue+1(或 +n)的查询,但这需要执行“插入并询问”链。

Db 应该能够存储超过 6K 的大请求 /per.sec。所以我想尽可能少地询问id。批量插入不是一种选择。

0 投票
1 回答
2299 浏览

c++ - 通过 libpqxx 将数据插入 PostgreSQL 时遇到问题

我有一个mydb用 table调用的数据库People(id, name)

我想使用 pqxx C++ 接口在该表中插入一行。

SQL查询非常简单INSERT INTO people (id, name) VALUES (1, "Bob");

C++ 代码在这里:

但我得到以下异常:

怎么了?

0 投票
1 回答
3350 浏览

c++ - 试图通过 C++ 程序连接到 postgresql

背景

我正在运行 linux ......我正在尝试编写一个连接到 postgresql 数据库的基本小 C++ 程序。

我正在尝试关注这篇文章 http://www.tutorialspoint.com/postgresql/postgresql_c_cpp.htm

问题

我已经能够编译库......现在我可以看到我的计算机上有以下文件夹 /usr/local/include/pqxx

但是当我尝试编写一些基本代码并编译它时,我收到以下错误:

源代码

代码如下所示:

到目前为止我已经尝试过:

我一直在寻找 /usr/local/include/pqxx 文件夹,我可以看到有一个名为 pqxx 的文件......但它没有任何扩展名。

这是该文件夹的 ls -lah 命令的片段:

I've also made sure that my PATH includes the /usr/local/include/pqxx folder. This is what my PATH looks like:

I'm not sure what else I should check. Any suggestions would be appreciated. Thanks.