繁体   English   中英

如何在 C++ 应用程序中连接到 Oracle 云数据库?

[英]How do I connect to an Oracle cloud database within a C++ application?

我有一个带有 Oracle 的云数据库,我正在尝试学习如何在我的 C++ 应用程序中执行 SQL 命令。

这是我尝试过的。

1) 使用即时客户端 (OCCI)

  • 我试图遵循 Oracle 发布的这些文档
  • 我下载了instant client,解压,放到oracle目录下
  • 我下载了 Instant Client 的 SDK 放在同一个目录下
  • 我下载了钱包文件并将它们放在 network/admin 目录下
  • 我将路径变量设置为目录 Oracle/instant_client 并创建了一个名为 ORACLE_HOME 的用户变量并将其设置为同一目录
  • 创建了一个 TNS_ADMIN 用户变量并将其设置为 network/admin
  • 创建一个空的visual studio项目并将sdk添加到附加的包含依赖项中并将sdk添加到项目属性下的附加库目录中
  • 将 .lib 文件添加到项目属性下的附加依赖项(链接器 -> 输入)
  • 然后我写了这段代码
    Environment* env;
    Connection* conn;

    env = Environment::createEnvironment(Environment::DEFAULT);
    conn = env->createConnection ("username", "password", "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp) (HOST=myserver111) (PORT=5521))(CONNECT_DATA = (SERVICE_NAME = bjava21)))");
    
    env->terminateConnection(conn);
    Environment::terminateEnvironment(env);
  • 它成功编译、运行和构建环境,但在尝试创建连接时发生错误

2) 使用 ODBC

  • 下载了 ODBC Oracle 驱动程序
  • 向系统 dsn 添加了新的数据源名称
  • 测试连接成功
  • 放弃努力,因为我找不到有用且简单的文档来帮助我完成我的项目

3) 使用 Oracle Developer Tools for Visual Studio

  • 我下载了开发人员工具并将它们添加到 Visual Studio
  • 使用服务器资源管理器连接到我的 Oracle 数据库
  • 能够查看我的表和数据并使用服务器资源管理器修改它们
  • 无法找到文档或无法添加允许我执行 SQL 查询的代码

一般使用 Instant Client:

  • 不要设置 ORACLE_HOME。 这可能会产生副作用。
  • 您不需要设置 TNS_ADMIN,因为您将解压缩的网络文件放在默认目录中。

对于云:

  • 在应用程序中,使用 tnsnames.ora 文件中的网络别名之一(例如 xxxx_low)。 您可以看到描述符包含您的硬编码描述符丢失的额外信息。

ODBC 将完全相同。 将钱包文件解压缩到默认的 network/admin 子目录后,您只需要连接数据库凭据并使用 tnsnames.ora 文件中的网络别名。

更多信息在我的博客文章如何连接到 Oracle 自治云数据库中

官方文档位于使用 Oracle 数据库工具连接自治数据库中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM