问题标签 [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 回答
606 浏览

c++ - 如何使用 SOCI 从数据库中获取整行?

...并将其保存为自定义对象类型?我正在使用 PostgreSQL。当我将所有内容都放在一个文件中时,它就可以工作。但我想把它分成类文件,就像你在用 cpp 编写时所做的那样。当我将代码分成 *.h 和 *.cpp 文件时,我遇到了错误。

这是我的文件:

测试.h

测试.cpp

主文件

我这样编译它:

g++ main_test.cpp test.h test.cpp -o App -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci -I /usr/include/postgresql

并得到了这些错误:

上述问题已解决,请查看@JohnBandela ANSWER。

0 投票
1 回答
2199 浏览

c++ - 如何使用 SOCI 从数据库中获取整行到用户定义的对象类型?

我扩展了我的课程(来自这个问题:How to get a whole row from database using SOCI?)拥有两个私有成员,还添加了 getter 和 setter。但是在编译我的程序时,我又遇到了错误。

我的类.h

我的类.cpp

我的ClassTest.cpp

我这样编译它:

g++ myClassTest.cpp myClass.h myClass.cpp -o App -lsoci_core -lsoci_postgresql -ldl -lpq -I /usr/local/include/soci -I /usr/include/postgresql

我得到的错误是:

0 投票
1 回答
340 浏览

visual-c++ - 在 VisualC++ 项目中使用 GCC 编译的库(反之亦然)

是否可以在将 GCC 用作编译器(反之亦然)的项目中使用使用 VisualC++(因此带有 .lib 扩展名)编译的代码(和库)?还是我必须重建它们?
我正在尝试在一个以 GCC 作为编译器的项目中使用我用 VisualC++ 编译的 SOCI 3.1 库,但我遇到了一些错误,我不知道为什么..

0 投票
1 回答
419 浏览

c++ - 使用 PostgreSQL 时 SOCI 库中的高精度时间戳

SOCI 库描述了 std::tm 的绑定以使用时间戳。std::tm 结构精度次之,但 PostgreSQL 时间戳提供更好的精度。您能否建议以小于秒的精度访问时间戳的最佳方法?

我尝试了 unsigned long 和 long long 数据类型来访问时间戳,但没有成功。我成功的唯一方法是字符串,但这需要解析它(我希望有一些常规值可以使用 - 比如,以毫秒为单位的长,甚至更好的 c++11 time_point),这远非最佳。

提前致谢。

0 投票
2 回答
1125 浏览

c++ - 使用 SOCI 和 soci::indicators [C++] 从表中获取行

我想从名为“人”的表中获取行。我想在指标的帮助下做到这一点,以避免当这个人没有名字时出现异常。这个怎么做?

我写了代码:

但它没有显示任何行,只有当我添加一行时:

在我的 if 语句之前,只有这样我才能看到数据库中的名字。

0 投票
1 回答
4722 浏览

c++ - 如何使用 SOCI 库将变量绑定到准备好的语句?

目前我的应用程序只支持 SQLite 数据库,但我想同时支持 SQLite 和 MySQL 数据库,所以我正在测试SOCI 库,看看它是否能满足我的需要。但是,尽管有示例和文档,但我无法弄清楚 SOCI 如何处理准备好的语句。

使用SQLite C API时,您准备语句:

稍后您将一个值绑定到 :id 占位符,执行语句并逐步检查结果:

我如何使用 SOCI 做到这一点?看起来准备和绑定概念并没有像原生 SQLite API 那样分开。绑定是否必须在使用 soci::use() 进行准备期间发生?

更新 1:如果我没有很好地解释这个问题:这是一个使用 SQLite C API 的小型、有效的 C++ 示例。如果我能看到这个使用 SOCI 重新实现,它会回答这个问题。

使用 SOCI 部分实现的相同程序(注意标记为HELPME的两个存根函数)

更新 2:当我找到cppdb 库时,我最终放弃了 SOCI 。与 SOCI 不同,它只是对原生 C API 的一个非常薄的包装器,适合我目前的需求。

0 投票
0 回答
282 浏览

mysql - OS X 上的 SOCI MySQL 问题

我的项目正在尝试合并 SOCI,以便从 C++ 轻松访问 MySQL 数据库。我的一个队友使用 MySQL 后端在 linux 中创建了一个正在运行的 SOCI 测试程序,他的 CMake 文件中只有这个链接:

但是,在 Mac 下,当我尝试运行程序时,它会在会话创建行出错:

出现此错误:

我肯定安装了 MySQL,并且我肯定构建了支持 MySQL 的 SOCI,SOCI 的品牌甚至说它找到了 MySQL 库。

使用 SOCI 和 MySQL 后端的 CMake 项目是否也应该链接到 MySQL 或 SOCI MySQL 插件?我曾尝试沿着这条路线走,但最终会遇到不同的运行时错误,例如:

任何帮助将不胜感激,如果需要,我可以提供我们的测试程序,谢谢!

0 投票
1 回答
457 浏览

c++ - 构建时的 Soci C++ sqlite3 后端抽象

我在使用 SOCI C++ 3.2 和 mysql 和 sqlite3 后端构建应用程序时遇到问题。这是我包含的标题:

这是我得到的建筑错误:

我在网上没有找到有关此问题的太多信息,因此不胜感激!

0 投票
1 回答
890 浏览

c++ - soci:“插入”后返回主键

我使用带有 C++ 的 soci 来访问我的数据库。是否可以修改以下表达式以获取赋予该表达式添加的行的新主键?

例如

这样我就可以使用 newID 继续我的工作了吗?id 在这种情况下是主键(bigserial)

0 投票
0 回答
360 浏览

c++ - C ++ soci将行从一个表插入到另一个具有相同结构的表中

我在不同的数据库中有两个表,但它们的结构是相同的。一列或多列可能包含“空”值。我发现了以下

http://soci.sourceforge.net/doc/3.2/exchange.html(见指标)

如何将此应用于多个列?我还尝试通过使用行集来解决这个问题:

但是我不知道如何将此行集输入到另一个数据库中,而且我不知道当我需要处理很多行时这是否有效。到目前为止,我通过使用语句解决了复制大量数据的问题:

我很感激任何帮助