问题标签 [sqlapi++]

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

c++ - G++ 编译器无法识别 SQLAPI.h 头文件

我正在尝试使用以下命令在我的 MacBook CLI 上编译 C++ 程序:

但得到错误:

我将来自https://www.sqlapi.com/Download/的下载文件放到目录 /Users/user/SQLAPI/ 中。我已经确认 SQLAPI.h 文件在 /Users/user/SQLAPI/include/SQLAPI.h 中,所以我对为什么我的 g++ 无法识别头文件感到困惑。请帮忙!

0 投票
1 回答
191 浏览

c++ - 代码中链接库 SQLAPI ++ 的问题:Raspberry PI 3b + 上的块

我有一个问题,我的目标是连接到数据库,例如在 Raspberry Pi 上使用 C++ 的 MSSQL,我在 Code::Blocks 中链接 SQLAPI++ 库时遇到问题,谁能告诉我我做错了什么?请给我一个提示或方向...

1.Dowland fies 下载的文件

2.我将包含目录与项目 链接包含到项目

3.我将lib目录与项目 链接lib链接到项目

4.I链接文件调试 链接文件进行调试

5.I链接文件发布 链接文件发布

6.这是我的错误: 错误代码

这是我的测试代码:

0 投票
2 回答
231 浏览

c++ - 无法从 C++ 中的 SQLAPI++ 程序连接到我的 Oracle 数据库

我对使用数据库有点陌生。我一直在学习 oracle sql 并从他们的站点安装了 oracle express edition 18c。我一般通过提供的 SQL*Plus 工具执行 sql 查询。现在,我真的希望能够从我的 C++ 程序连接到项目的数据库。我听说了 odbc,我去他们的网站下载了我的 oracle 版本的 odbc 驱动程序和即时客户端。然后我找到了一个名为 SQLAPI++ 的第三方库,它可用于使用 c++ 连接到数据库。我下载了该库并将其包含在我的项目中。我在 Windows 10 上使用 codeblocks IDE。我试图运行这个程序来测试我是否可以连接到数据库-

没有编译器错误或警告。现在它打印——“ORA-12154:TNS:无法解析指定的连接标识符”。任何帮助将不胜感激!>.<

编辑:现在我运行调试器,这就是我所看到的 -

0 投票
1 回答
51 浏览

c++ - 如何使用 SQLAPI++ 从 SQL 服务器读取 unicode 字符?

我正在使用 SQLAPI++ 构建需要访问数据库的后端应用程序(SQL Server 2014)。当我尝试从包含非 ascii 字符(特别是波斯字符)的结果集中读取字符串 (nvarchar(50)) 时,这些cmd.Field("MyField").asString().GetxxxChars()方法都返回问号 (?) 而不是这些字符。我应该怎么办?

我也尝试过asBytes()并且asLongChar()得到了相同的结果。

0 投票
0 回答
60 浏览

c++ - 将 dll 移动到正确的代码路径后,Visual Studio c++ 没有为 dll 加载符号

我正在尝试在 Visual Studio 2019 中创建一个连接到 SQL Server 的简单应用程序。我正在使用sqlapi++库来创建连接。我正在尝试获得更多使用 c++ 和 3rd 方库的经验。我在 c++ 方面的经验主要是在带有 xcode 和标准 c++ 库的 macbook 上。

我收到以下错误:

然后我得到这个错误:

没有为 sqlapi.dll 加载符号

二进制文件没有内置调试信息。

它将文件位置指定为C:\Users\name\source\repos\ProjectName\Debug\sqlapi.dll. 我查看这个文件位置,它就在那里。这也是生成exe文件的地方。到目前为止,我的代码非常简单:

我设置了一个断点con.Connect()并继续,然后它加载符号几秒钟,然后给我一个错误。我的问题是,如何确保我的 .dll 文件正确加载到 Visual Studio 中?我的 .dll 和 .pdb 文件是否应该全部移动到生成 .exe 文件的文件位置?或者只是将它们放在与 .cpp 文件相同的文件中?

0 投票
0 回答
61 浏览

c++ - 使用 SQLAPI 库 (C++) 对“...”的未定义引用

所以我对 Sqlapi 库有这个问题。

我不知道如何修复它......这是我的makefile:

我的 main.cpp 在这里:

这真的是一个简单的代码,它不是我真正的程序,但如果我能在这里解决这个错误,我可以在我的其他程序中解决它。

我不知道它是否有帮助,但我使用wing32-make 和Visual Studio Code。顺便说一句,我在 Visual Studio 代码中添加了配置文件中的行:${workspaceFolder}/SQLAPI/include/**

如果有人可以帮助我或只是给我一个线索,那就太好了!谢谢。

0 投票
0 回答
47 浏览

c++ - CLion下的SQLAPI++

我目前正在学习 c++ 并想尝试使用数据库并遇到 SQLAPI++。因为我喜欢 JetBrains 的 IDE,所以我使用 CLion。作为编译器,我开始使用 Cygwin 编译器,并在本周下载了 Visual Studio 编译器以使 SQLAPI++ 正常工作。所以终于感觉准备好了,就像现在编译可以工作一样,我得到了链接错误。

这是我的 CMakeLists:

这是我复制的示例代码:

0 投票
0 回答
57 浏览

c++ - 使用 SQLAPI++ 的 Oracle 连接

我正在尝试使用 SQLAPI++ 将我的 c++ 代码与 oracle 连接,但它给了我错误 TNS:could not resolve the connect identifier specified

我的代码是这样的:

如果我只使用相同的代码但用户名和密码不等于这样:

编译器给了我一个ORA-01017: Invalid username / password; connection refused\n错误。

0 投票
1 回答
88 浏览

c++ - 视图创建在 Firebird 3.0 中有效,但在 4.0 版中无效

几年前,我用 C++(Code::Blocks + wxWidgets + SQLAPI++)和 Firebird 创建了一个音乐数据库应用程序,作为 Windows 平台(v10)上的数据库服务器(以经典模式作为服务运行)。它创建一个带有表、视图、触发器、生成器的 SQL 数据库。

到目前为止,它一直完美运行到 Firebird 3(最新版本)。现在 Firebird 4.0 出来了,我想我试试看。

为了缩小问题的范围,我创建了一个新应用程序,它只创建数据库、表、触发器、生成器,并且只有 2 个关注问题区域的视图。

我在测试应用程序中使用的 vew_AlbumDetails 代码是:

我在测试应用程序中使用的 vew_ReportDetails 代码是:

当我使用作为服务运行的 Firebird 3 创建数据库并在 FlameRobin 中打开它时,一切正常。在 VIEW vew_AlbumDetails 中,Album_NrSeconds 类型为 BIGINT。(见下图)

在此处输入图像描述

当我使用作为服务运行的 Firebird 4 创建数据库并在 FlameRobin 中打开它时,一切都不正常。在 VIEW vew_AlbumDetails 中,Album_NrSeconds 类型为 (16)。(见下图)

在 VIEW vew_ReportDetails 中,Album_NrSeconds 类型为 BIGINT。没关系(见下图)

在此处输入图像描述

在 FlameRobin 中,我还手动添加了一个新视图 (vew_Manual_Added_View),其代码与 vew_AlbumDetails 相同(名称除外)。代码如上图所示。

奇怪的是 Album_NrSeconds 的类型现在是 DOUBLE PRECISION 而不是 Firebird 4 服务下的 (16) 或 Firebird 3 服务下的 BIGINT。

将 Firebird 4 作为服务运行时,我的问题如下:

我的音乐应用程序创建数据库时没有错误,但 vew_AlbumDetails、Album_NrSeconds 类型为 (16)。当使用 vew_AlbumDetails 显示已存储专辑的概览时,它会崩溃而没有任何错误消息。Album_NrSecondse 类型 (16) 导致了这种情况。

使用 Firebird 4 作为服务时,有两件事我不明白。

  1. 使用我的应用创建 vew_AlbumDetails 时,为什么 Album_NrSecondse 的类型为 (16)?
  2. 当使用完全相同的代码手动添加视图时,为什么 Album_NrSecondse 类型为(双精度)?

Firebird 4.0 中是否存在导致这种奇怪行为的错误?或者我是否需要以某种方式调整我的代码?

我希望有人可以帮助我了解导致 Firebird 3.0 和 4.0 之间行为不同的原因,并让我找到解决方案。