问题标签 [libpq]
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.
c - 从 Postgresql 数据库中检索图像文件返回插入两倍大的数据(通过 libpq 库)
我正在使用 Postgresql 数据库的 libpq 库,我在从 db 中检索 bytea 数据时遇到问题。我无法解决我的问题,所以想问你。每当我尝试将图像文件插入 db 并取回时,返回数据的大小始终是我发送的数据的 2 倍。实际上,确切的等式是:检索到的数据 = 发送的数据 * 2 + 2.(以字节为单位)。所以,我还想不通,我可能遗漏了一些东西:/
我使用的示例代码如下:
如果你们帮助我,我将不胜感激。我对寻找它的原因感到非常无聊。
提前致谢。
编辑:我跟踪存储在磁盘中的数据,插入数据的大小相同(58573 字节)。获取数据时,数据会变大两倍...
ruby-on-rails - Ruby on Rails / PostgreSQL - 启动服务器时未加载库错误
嘿嘿。如果这个问题已经在另一个线程中得到回答,我提前道歉。我已经搜索了该网站,但没有找到答案。然而,最接近的相关问题是Ruby on Rails / PostgreSQL - Library not Loaded error when started server- libq.5.dylib,但从未解决,答案对我没有帮助。
我试图让 PostgreSQL 在我的 Mac OSX 10.6.8 上运行。我已经安装了 Ruby 1.9.3p392 和 Rails 3.2.13。
由于我有 10.6.8,而 PostGresApp 需要 10.7+,我尝试使用此处提供的手动安装程序(v9.2.3)安装 PG:http ://www.enterprisedb.com/products-services-training/pgdownload
我首先将它安装到默认路径:/Library/PostgreSQL/9.2/。然后我安装了 pg gem ( PATH=$PATH:/Library/PostgreSQL/9.2/bin
sudo gem install pg
)。当我尝试rails s
启动本地主机时,出现以下错误。
经过一番阅读,我猜测可能是路径错误,所以我删除了 pg gem,然后使用了 postgresql 卸载程序。然后我在 /users/stewartmccoy/Library/PostgreSQL/9.2/... 中重新安装了 pg,然后重新安装了 pg gem。但我仍然得到同样的错误。
关于如何正确安装 PostgreSQL 并让我的 rails 服务器运行的任何想法?
c - Libpq using large amount of memory for simple example
Why does the following code use 1.2GB of memory to execute? I was expecting memory usage to be relatively flat regardless of the number passed to generate_series, instead it is steadily increasing. Please - tell me I'm doing something wrong!
I've put the full source code for this example on pastebin.
c++ - 当我尝试编写'const char *'时,c++ 给了我标准的字符串/损坏的数据而不是二进制数据
在 C++(Visual C++ MFC)中,我有char *
来自数据库的。这实际上是一张图片。PostgreSQL 将它作为 char * 返回,因为 C++ 中没有 byte[] (据我所知-yet-:))
问题是,我尝试像这样写那个图像:
它输出如下:
我试图将内容更改为reinterpret_cast<char *>(&contents)
然后我得到了一些二进制数据,但只有少数。其余的不在文件中。
我也试过这个:
无论有reinterpret_cast<char *>(&contents)
没有它。文件中仍然有几个字节数据。不再。
我也尝试过改变size
。大小来自 postgresql 的PQgetlength
方法,所以这是肯定的。(不会错吧?)
我终于给size
了自己,对 C++ 说它是5000
. 它输出 5.000 的二进制数据,但事实是,它与原始文件不符。它以“h”开头,然后是不同的东西......
我还尝试将这些数据加载到 Chilkat 的 ByteArray,然后使用它的 oen 文件访问方法写入。仍然得到相同的结果\xfdd...
。
那么,主要目标是什么?我在这里想念什么?任何帮助将不胜感激。
编辑:它是char *。我为我的误会道歉。
结论:由于我的需要,我选择了Craig Ringer * 的解决方案。但由于这个问题的性质,我选择H2CO3的答案作为公认的答案。
c - 使用静态字符数组创建辅助函数
我正在使用 PostgreSql C 库libpq
,我可以PGresult
使用函数从指针中获取值PQgetvalue
。
printf
现在,我有一个包含 10-20 列的表,我想通过一个简单的调用将它们打印出来:
使用函数加载resA
的resB
字符串在哪里。PGgetvalue
现在,这种方法需要声明 10-20 个指针(如果我想用一个 printf 打印出来),我打算使用一些简单的东西:
然后printf
像这样打电话:
但是,该printf
函数的输出表明所有getField
调用都返回从数据库中首先请求的任何内容(在本例中为A
字段的值),即使我已经使用memset
call 删除了前一个字符串(只是为了确定)。
我哪里错了?是在我的代码中,还是 gcc 假设我所有的 getField 调用都返回指向同一内存的指针,所以它实际上并没有多次调用它。
或者,printf
函数是否首先评估所有参数(以相反的顺序),然后实际调用该函数?如果是这种情况(我敢打赌),是否有更简单的模式来实现我正在尝试的目标?
c++ - libpq VS qpsql(postgre 的 QT 驱动程序)
我一直在使用 QT 4.8 和 QT Postgresql 驱动程序来制作 Postgresql 连接头和一个类,当我最终完成它时,我的老板告诉我忘记它并在本机 libpq 中重新制作它......他使用 QT 作为将使用标头的程序所在的 ide,我知道,以编程方式,结合范式并不是一个好主意,但是……我正在按照他说的做。所以!我想知道的真正问题是......使用这两者的主要区别是什么?(除了一个是c,另一个是c++)
我的意思是,就程序的效率、性能和大小以及数据类型而言?此外,如果可能是与数据库的连接发生变化。谢谢
c - 未定义的引用...函数返回指针
制作一个连接到 PostgreSQL 数据库的标头我将 libpq 函数封装到我自己的函数中,但是在其中一个函数中,它应该返回一个 PGconn 类型的指针,我得到一个类型的错误......
ConexionPostgres.c:32:6: aviso: la asignación crea un puntero desde un entero sin una conversión [activado por defecto]
/tmp/ccCeaewL.o: In function
main ':
ConexionPostgres.c:
( .text+0x86
): undefined reference to
设置BD'
我认为这是因为原型所以我更改了原型并将定义直接放在 main 之前但什么都没有......有人能告诉我发生了什么吗?
我正在检查 Postgres libpq 文档和 libpq-fe.h 直接查看原型,所以我没有遗漏任何东西,但我很困惑。这是我的代码:
c - 将 libpq-fe.h 添加到 qt 现有项目
我有一个使用 libpq-fe.h 连接到 postgresql 数据库的 C 代码。在本地它运行良好,一切正常,但现在我们正试图在 QT 现有项目中使用它。为什么不使用 qpsql 驱动程序呢?好吧,程序本身是纯 c++ 的,但我们只是使用 QT 作为编程的额外帮助,所以问题是......我如何告诉 QT 将代码与针对 libpq-fe.h 的标头链接?我们尝试添加路径
LIBS += -I/usr/include/postgresql
,
LIBS += -lpq
但没有结果...我们还尝试将 CPPFLAGS 添加到 makefile 中,如文档所述,但是在重新编译时,程序会重新创建 makefile,所以它没有用 建议?
c++ - LNK2005 与 libpq 作为静态库
我正在编写一个通过静态库(包括 tinyxml2、sqlite3、openssl 和 libpq)链接所有 3rd 方代码的应用程序;每当我尝试链接到 libpqd.lib 时,一切都运行良好——使用了 9.1.9 和 9.2.4 源——我得到:
这是唯一的错误,到目前为止我的搜索一直没有结果。请注意,我/MTd
在所有库中都使用了多线程调试运行时库,而 postgresql 默认情况下没有;我已经手动修补了 win32.mak 以使用/MTd
和/MT
代替以前无法配置的/MDd
和/MD
. 这解决了一些以前的链接器错误,但不要认为它与最后一个错误有关,因为它之前存在。
我通过以下方式编译 libpq:
并通过以下方式链接到它:
库目录是在项目中配置的,库被复制到这个文件夹中,所以我知道它是正确的。
这通常是一个很容易解决的错误,但我不知道该去哪里找了!
postgresql 网站上确实存在一个关于此的线程,但似乎尚未解决:http ://www.postgresql.org/message-id/39E6FC4547C24F9884435E23698B11DC@HIRO57887DE653
postgresql - Psycopg2 Python App的部署问题
我用 Python 创建了一个应用程序,该应用程序经过测试并在我的计算机上完美运行(Mac OSX 10.8.3 Python2.7.3 Postgresql9.2.4 Psycopg2-2.5)。该应用程序是使用 py2app 编译的,我可以看到构建成功地将所有包/模块包含到应用程序内容文件夹中。
Psycopg2 在我的机器上正确导入,并且应用程序运行良好,但是当应用程序在另一台计算机上运行时(我尝试了 4 台不同的计算机......),它无法打开,并且控制台消息显示 ImportError: dlopen(/ Applications/app.app/Contents/Resources/lib/python2.7/psycopg2/_psycopg.so,2):未加载库:libpq.5.dylib
我已经通过 SO 和 Google 广泛搜索和修改了我的代码,但无济于事。psycopg2 链接也没有专门解决这个问题。http://initd.org/psycopg/articles/2010/11/11/links-about-building-psycopg-mac-os-x/
我已经多次删除并重新安装了 psycopg2 和 postgresql,从源代码、macports、自制软件等构建。上面列出了我当前的环境,使用自制软件安装了 postgresql 9.2.4,并在显式链接 pg_config 位置时从源代码安装了 psycopg2-2.5在 setup.cfg
当我在 _psycopg.so 上运行 otool -l 时,我得到以下信息
我构建的应用程序如何包含(或将目标用户指向文件,如果可用)这些文件?这是正确的方法吗?Py2app 当然不会在“框架”选项中包含来自 /usr/lib/ 的系统文件。