问题标签 [soci]

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 回答
879 浏览

c++ - Soci 作为 linux/ubuntu 上的静态库?

出于安全原因,我需要将程序与 soci 静态链接。

我构建了静态库 libsoci_core.a 和 libsoci_postgresql.a,因为我的后端是 postgresql。

我的问题是,当我使用这些库构建程序时,会出现链接错误。

[...]/lib/libsoci_core.a(backend-loader.cpp.o):在函数`(匿名命名空间)::do_unload(std::basic_string, std::allocator > const&)'中:

backend-loader.cpp:(.text+0x623): undefined reference to `dlclose'

查看 backend-loader.cpp 中的代码,它调用了 dlclose 和其他动态库加载函数。

所以我想知道是否有可能避免这些错误并拥有一个“真正的”静态构建。

或者我应该使用什么选项来避免这个错误并且代码会调用静态 posgresql 库?

谢谢你!

0 投票
4 回答
1100 浏览

c++ - 在 Xubuntu 上使用 SOCI(sql 包装器),简单程序在编译时失败

我想最终了解如何编写使用数据库的应用程序。我选择了 C++、PostgreSQL 和 SOCI(C++ 的 SQL 包装器)。我使用 Xubuntu 11.4 并安装了运行简单程序所需的一切。

要使用我安装的 SOCI:

1)libboost-dev 2)libpq-dev 3)libtool 4)SOCI,使用这个:http : //soci.sourceforge.net/doc/backends/postgresql.html#required 我用这个命令编译了SOCI:cmake cmake - G "Unix Makefiles" -DWITH_BOOST=ON -DWITH_POSTGRESQL=ON ../

我的简单程序非常简单:

我这样编译它:

但它给了我错误:

test.cpp:1:29:致命错误:soci-postgresql.h:没有此类文件或目录编译终止。

如何解决这个问题,怎么了?我错过了安装的东西吗?

更多信息:

我也试过这个:g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql并得到了错误:

g++ test.cpp -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci/postgresql 在 test.cpp:1:0 包含的文件中:/usr/local/include/soci/postgresql/soci-postgresql .h:27:26:致命错误:soci-backend.h:没有此类文件或目录编译终止。

0 投票
1 回答
547 浏览

c++ - SOCI(SQL C++ 包装器)- PostgreSQL 不执行命令(?)

当我弄清楚如何编译一个简单的程序时,现在我遇到了其他问题......我安装了 PostgreSQL 并创建了数据库和表:

1) createdb testDB 2) 创建表ities (city varchar(80), location varchar(80));

我仍然非常简单的程序:

这段代码只显示了我在 testDB 中已有的行,没有显示我刚刚插入的行。例如:在我的 testDB 表中,我有:

华沙 波兰 柏林 德国 巴黎 法国

上面的代码向我展示了:

波兰华沙

但不显示:

柏林 德国 巴黎 法国 伦敦 英国

请帮忙:(

0 投票
1 回答
1364 浏览

c++ - SOCI C++(SQL 包装器)致命:数据库“testDB”不存在

Soci 的另一个问题......我想连接我刚刚创建的 testDB,但下面的代码显示了致命错误。

我这样做了:

在 PostgreSQL 上:

我的 C++ 代码:

编译后我得到了这个:

怎么了?

0 投票
2 回答
1964 浏览

c++ - 使用 SOCI 从 PostgreSQL 数据库获取数据时出现错误转换

我在 PostgreSQL 中有一个数据库。而且我有 sql 查询(顺便说一句,它在 PostgreSQL 中工作得很好,所以 sql 代码没有错):

其中创建日期在 PostgreSQL 中定义creation_date Date;。查询返回,例如(取决于我的数据库中的内容):

我正在使用 SOCI + C++ 从这个查询中获取数据。我的整个 C++ 代码:

但是当我尝试运行应用程序时出现此错误(编译很好):

在抛出 'std::bad_cast'
what() 的实例后调用终止:std::bad_cast 中断(核心转储)

请帮忙,当编译很好时,我真的不知道如何解决这个问题。

也许问题是 creation_date 是 DATE 并且 tm 也保持时间......?如果是这样,如何解决这个问题?

0 投票
2 回答
1318 浏览

c++ - 如何将 wchar_t(或 wchar_t* 或 CORBA::WChar*)转换为字符串?

在我的应用程序中,我必须使用 CORBA::WChar*(或等效的 wchar_t*),但我的程序还需要将一些信息保存到 PostgreSQL 数据库中。为了在 C++ 中将数据插入 PostgreSQL,我使用 SOCI。问题在于:

所以不支持 wchar_t* 或 wstring ...我需要将 CORBA::WChar (或 wchar_t 或 wchar_t*)转换为字符串。这该怎么做?

我也有宽字符(和字符串)的问题,使用 CodeBlocks 10.5 :

显示:

如何解决?

我还需要代码是可移植的,我可以在 unix/linux 和 windows 上运行它。

0 投票
1 回答
823 浏览

c++ - Soci:创建自定义类来存储结果

我使用Soci进行数据库查询。现在我需要一个自定义的结果集类,它将环绕 soci::rowset。我无法让它以我的代码在下面的方式工作,因为复制构造函数在 soci 中是私有的(根据源文件不支持)。如何在没有复杂代码的情况下完成包含 soci::rows 列表的包装器(在此为 Row 类型定义)?任何关于如何进行的设计或方向都值得赞赏

我的头文件

源文件

这是我在连接的 ExecuteQuery 函数中使用的方法。m_session 是 soci::session

稍后我想如何使用该类的示例

0 投票
2 回答
2797 浏览

c++ - 如何使用 SOCI 为 SELECT * 编码?

SOCI的大多数示例中,调用者必须知道查询中的字段和类型,并通过 a soci::rowset<>ofboost::tuple<>或其他方式指定它们。

有没有办法在事先知道列的类型和数量的情况下进行编码,就像在SELECT * FROM ...查询中一样?

如果是这样,你能发布一个简短的例子吗?

0 投票
1 回答
447 浏览

c++ - 使用 SOCI 和 Qt = 如何编写一个好的 *.pro 文件?

我想使用 Qt 和 SOCI 编写一个 GUI 应用程序。如何编写一个好的 *.pro 文件来编译一个没有错误的项目?我写了这个:

它有效,但我不知道它是否正确。

0 投票
1 回答
563 浏览

c++ - 如何使用 SOCI 和 C++ 检查表中有多少行?

简单的问题。我有一个表人。我有两行:

如何编写 SOCI 语句,它将告诉我(返回)我的表中有多少行?(在这里,在我的示例中,我有 2 行)。