问题标签 [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.
c++ - G++ 编译器无法识别 SQLAPI.h 头文件
我正在尝试使用以下命令在我的 MacBook CLI 上编译 C++ 程序:
但得到错误:
我将来自https://www.sqlapi.com/Download/的下载文件放到目录 /Users/user/SQLAPI/ 中。我已经确认 SQLAPI.h 文件在 /Users/user/SQLAPI/include/SQLAPI.h 中,所以我对为什么我的 g++ 无法识别头文件感到困惑。请帮忙!
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:无法解析指定的连接标识符”。任何帮助将不胜感激!>.<
编辑:现在我运行调试器,这就是我所看到的 -
c++ - 如何使用 SQLAPI++ 从 SQL 服务器读取 unicode 字符?
我正在使用 SQLAPI++ 构建需要访问数据库的后端应用程序(SQL Server 2014)。当我尝试从包含非 ascii 字符(特别是波斯字符)的结果集中读取字符串 (nvarchar(50)) 时,这些cmd.Field("MyField").asString().GetxxxChars()
方法都返回问号 (?) 而不是这些字符。我应该怎么办?
我也尝试过asBytes()
并且asLongChar()
得到了相同的结果。
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 文件相同的文件中?
c++ - 使用 SQLAPI 库 (C++) 对“...”的未定义引用
所以我对 Sqlapi 库有这个问题。
我不知道如何修复它......这是我的makefile:
我的 main.cpp 在这里:
这真的是一个简单的代码,它不是我真正的程序,但如果我能在这里解决这个错误,我可以在我的其他程序中解决它。
我不知道它是否有帮助,但我使用wing32-make 和Visual Studio Code。顺便说一句,我在 Visual Studio 代码中添加了配置文件中的行:${workspaceFolder}/SQLAPI/include/**
如果有人可以帮助我或只是给我一个线索,那就太好了!谢谢。
c++ - CLion下的SQLAPI++
我目前正在学习 c++ 并想尝试使用数据库并遇到 SQLAPI++。因为我喜欢 JetBrains 的 IDE,所以我使用 CLion。作为编译器,我开始使用 Cygwin 编译器,并在本周下载了 Visual Studio 编译器以使 SQLAPI++ 正常工作。所以终于感觉准备好了,就像现在编译可以工作一样,我得到了链接错误。
这是我的 CMakeLists:
这是我复制的示例代码:
c++ - 使用 SQLAPI++ 的 Oracle 连接
我正在尝试使用 SQLAPI++ 将我的 c++ 代码与 oracle 连接,但它给了我错误
TNS:could not resolve the connect identifier specified
我的代码是这样的:
如果我只使用相同的代码但用户名和密码不等于这样:
编译器给了我一个ORA-01017: Invalid username / password; connection refused\n
错误。
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 作为服务时,有两件事我不明白。
- 使用我的应用创建 vew_AlbumDetails 时,为什么 Album_NrSecondse 的类型为 (16)?
- 当使用完全相同的代码手动添加视图时,为什么 Album_NrSecondse 类型为(双精度)?
Firebird 4.0 中是否存在导致这种奇怪行为的错误?或者我是否需要以某种方式调整我的代码?
我希望有人可以帮助我了解导致 Firebird 3.0 和 4.0 之间行为不同的原因,并让我找到解决方案。