问题标签 [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.
postgresql - 为什么我不能按名称访问列?
示例代码:
我的输出如下
第一列名称是“Name”,根据字符串“Name”测试行名称会产生一个真实的语句。但是当我通过那个字符串访问它时,我得到了一个异常。
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再激活不受抑制。我使用标准连接类型 -
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,查找所有外键关系的查询在这里。
c++ - opencv二进制数据jpg图像到cv::Mat
我想在来自 postgresql 数据库的 c++ opencv 中加载图像。图像,jpg 扩展名,作为二进制数据(bytea 类型)存储在基础中,我可以通过 libpqxx 访问它。
问题是我不知道如何将数据转换为 cv::Mat 实例。对于常规图像,我可以使用 imread('myImage.jpg', ...),但在这种情况下,我什至无法在 Mat 的数据属性中加载数据库图像,因为它是 jpeg 而不是 bmp。
任何想法 ?是否有一些我可以使用的 opencv 方法可以直接理解二进制数据并将其转换为适当的结构?imdecode() 函数似乎用于位图数据。
编辑:Berak,使用向量 imdecode 函数返回空矩阵会发生什么“如果缓冲区太短或包含无效数据,则返回空矩阵/图像。” 这是代码:
我错过了什么?
c++ - 致命错误:找不到“libpq++”文件
我很想在我的 C++ 项目中使用 libpq++ 库,但我无法让它工作。
到目前为止,我已经libpqxx-dev libpqxx-4.0
在我的 Ubuntu 14.04 上安装了软件包,并为 clang++ 提供了 -llibpq++。
但是,无论我做什么,我仍然会收到以下错误:
似乎我没有正确安装 libpq++,但我真的没有看到任何问题。任何帮助将不胜感激。
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 因为它将是从程序中的许多地方调用的全局变量。
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++
. 我想我也必须使用CC
as 来编译我的代码,而不是使用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
make
from/usr/ccs/bin
之前无法构建它,所以现在我尝试使用
dmake
Oracle 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
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。批量插入不是一种选择。
c++ - 通过 libpqxx 将数据插入 PostgreSQL 时遇到问题
我有一个mydb
用 table调用的数据库People(id, name)
。
我想使用 pqxx C++ 接口在该表中插入一行。
SQL查询非常简单INSERT INTO people (id, name) VALUES (1, "Bob");
C++ 代码在这里:
但我得到以下异常:
怎么了?
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.