问题标签 [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 投票
2 回答
42962 浏览

c++ - C++ SQL 数据库库比较

我开始开发一个中型 C++ 项目,该项目必须使用 Microsoft SQL Server 数据库。在使用 .NET 技术之前,我已经完成了数据库工作,但我认为这次使用 .NET 方法并不合适。我想获得一些关于可用的各种免费(如 GPL、LGPL、Boost)C/C++ SQL 库的反馈。我发现 MySQL++ 和 SOCI 非常有趣,我想知道你们更喜欢哪一个以及为什么。

此外,虽然这个项目将主要在 Windows 工作站上运行,但我更喜欢在 Linux 下开发,因此跨平台兼容性是一个优势。

谢谢大家的时间,我真的很感谢你的建议!

杰瑞米

编辑:抱歉错字,我的意思是 Microsoft SQL Server 而不是 MySQL Server。

0 投票
2 回答
3005 浏览

c++ - 防止 C++ OTL、DTL 或 SOCI 库中的 SQL 注入

我一直在查看所有这三个数据库库,我想知道它们是否会采取任何措施来防止 SQL 注入。我很可能会在其中一个之上构建一个库,而注入是我选择一个库时最关心的问题。有人知道吗?

0 投票
2 回答
9515 浏览

c++ - 如何使用 SOCI C++ 数据库库?

我正在尝试在我的程序中实现 soci,但我不知道如何。我在 Linux 上使用 C++,在使用 netbeans 的项目中。我已按照以下步骤进行安装:http : //soci.sourceforge.net/doc/structure.html 安装它,我尝试从 /src/core 复制文件 soci.h 并从 /src 复制 soci-mysql.h /backends/mysql 在我的项目中,但它给出了编译错误(这些文件包括其他 soci 文件,但是将所有文件复制到目录中是不合逻辑的......)。我已经多次阅读指南,但我不明白我做错了什么。示例仅包括这些文件。

谢谢。

编辑:我在答案下方的评论中提供了更多信息。我不知道实现 soci 必须遵循哪些步骤。

0 投票
1 回答
1971 浏览

c++ - SQLite 适合我的游戏吗?

我一直在为我的在线纸牌游戏(PostgreSQL、Oracle 等)寻找不同的数据库库,虽然 SOCI + pg 或 Oracle 更强大,但它们也很难编译、集成,而且做的事情比什么都多我需要去做。

很简单,这些是我的要求:存储用户名、哈希、获胜、失败、电子邮件。非常简单。

游戏本身实际上不会经常与数据库通信。当玩家登录时,我将通过用户名检索行来登录他们,并使用他们输入的密码生成的哈希验证哈希。

除此之外,服务器仅访问数据库以添加用户、记录游戏后的输赢或更新个人信息。

鉴于 SQLite 支持有限的并发性,即使我同时运行 100 个左右的纸牌游戏,这也应该可以满足我的需求。

考虑到上述情况,SQLite 是否适合我,还是我应该认真考虑选择更复杂的解决方案?请记住,数据库不是我的强项。

谢谢

0 投票
1 回答
2474 浏览

c++ - OTL 和 SOCI 的区别

C++数据库OTL和SOCI的优缺点是什么?特别是,我的项目使用 SQL Server 2008 的项目有哪些差异?

我以前也没有使用过,在我的项目期间我不想更改库。

0 投票
2 回答
3780 浏览

c++ - 如何正确安装 SOCI?

我正面临一个烦人的问题,这个问题一直阻碍我编程一段时间。我打算开始一个个人项目,在这个项目中我需要使用数据库来存储某些信息,我决定使用 SQLite,但是我不喜欢 C-ish API,所以我在 SQLite wiki 中遇到了 SOCI 包装器。

我去了 SOCI 官方网站,阅读了文档并决定试一试。我按照文档的“安装”一章中的说明进行操作,在安装完所有要求后,我编译并安装了它:

但是,当尝试运行(使用 编译后g++ test.cpp -o1 -lsoci_core -lsoci_sqlite3)诸如以下程序的程序时,所有测试都成功完成:

测试.cpp:

我收到一条错误消息:“加载共享库时出错:libsoci_sqlite3.so.3.1:无法打开共享对象文件:没有这样的文件或目录。” 但是查看安装日志我可以清楚地看到共享库已安装。

0 投票
1 回答
588 浏览

c++ - 是否可以使用 SOCI c++ 数据库访问库管理表关系

假设我有两个具有多对多关系的表(即第三个表仅用于该关系)。

SOCI 是否支持语句中不同类型的“加入”?

如果是,它是否适用于所有数据库(文档中所谓的后端)?

谢谢!

0 投票
1 回答
1604 浏览

c++ - 带有 SOCI c++ 数据库访问库的 boost 元组行集的问题

将元组行集与最新的 soci 和 boost 库一起使用时出现编译错误。

我在网上找到了一个示例,但它不能与我使用的最新版本的 SOCI 编译。

导致问题的部分是这个:

这是我从网上的一个例子中得到的完整代码:

}

它在以下行失败:

这是我不太明白的错误:

知道可能是什么原因吗?

非常感谢!卢多维奇


一个解决方案是

1/ 添加括号 soci::rowset > rows = (sql.prepare << "select x(location),y(location) from cities");

2/ 执行建议的答案:#include 或 #define

0 投票
2 回答
767 浏览

c++ - 如何将块 unsigned char* 内存转换为 [signed] char* 内存块?

我正在开发一个 iPad 项目(iOS 5.1),该项目需要从 url 获取图像并将它们缓存为 sqlite3 blob。我正在使用 ASIHTTPRequest 来获取图像数据,并使用 SOCI 将 blob 插入到缓存表中。该项目是用 C++ 编写的(与最小的 Objective-C 混合)。

问题是 ASIHTTPRequest 通过一个 NSData 对象返回二进制数据......我可以从中获取一个 const unsigned char* 指针。但是 SOCI 的接口只提供了一个通过 char* 指针读取/写入 blob 数据的接口……(SOCI 在打开/写入/读取 sqlite_blob 之前在内部将数据写入 char* 缓冲区)。

那么,接下来的问题是将我的 unsigned char* 缓冲区转换为 char* 缓冲区是一个可行的解决方案吗?..如果是这样,我该怎么做?..否则,我还有什么其他选择可以解决这个问题?

0 投票
2 回答
1033 浏览

c++ - Soci Session 没有释放连接

我正在使用 soci 使我的应用程序与数据库交互,目前我使用 MySQL 服务器进行测试。我已将 SOCI 包装到简单的类中,我在类的 Connect 方法中调用 session.open()

然后在析构函数中我调用 close 方法

但是当我使用该类几次(创建和销毁该类的对象)时,我发现 soci 无法连接到 MySQL 服务器,错误连接太多。我很困惑,因为我在析构函数上调用了 close 方法,我想 soci 应该释放连接。检查 soci 文档我看不到除了 close() 之外的任何东西。

有没有办法强制 soci::session 释放连接?