我应该把调用Oracle OCI的代码放在哪里?

Where should I put code which calls Oracle OCI?

本文关键字:代码 在哪里 OCI 调用 Oracle 我应该      更新时间:2023-10-16

我想从c++程序中检索oracle数据库中的数据,谁能建议我哪个是更好的选择

oracle调用接口(OCI)或C/c++预编译器(Pro *C/c++),并告诉我两者的区别。谢谢你。

从注释中编辑:我应该把oci调用代码在。cpp文件,或预编译器(.pc/.pcpp)文件?

首先说明两个选项:

  • Pro*C/c++允许您直接在C/c++代码中编写SQL语句,就好像语言已经通过SELECT和INSERT等新关键字扩展了一样。就像ABAP或Linq一样。这种效果是通过使用所谓的预编译器预处理嵌入式SQL和C/c++的混合而获得的。它将所有嵌入的SQL转换成大量调用名为"SQLLIB"的Oracle内部库的C代码。结果是普通的C/c++代码,可以输入到标准的C/c++编译器。
  • OCI只是一个可以从C/c++代码调用的C接口/API。没有预处理魔法,只用C/c++。

职业,反:

  • 嵌入式SQL使SQL易于阅读,并减少了编写的代码量。所有重复出现的样板代码都被预编译器隐藏起来。这很好。但是预编译器引入了一个新的构建步骤,带来了新的问题:例如,预编译器期望嵌入的SQL按照特定的顺序全部放在一个文件中。纯C允许将其拆分并移动函数。嵌入式SQL引入了新的语言规则。
  • 没有比OCI更快的访问DB的方法了。我假设SQLLIB调用OCI,但这意味着您在OCI上有一个额外的间接途径。它是一个普通的C API,没有新的语言规则要学习。但是它模糊了函数调用中的SQL和所有C语法。

哪个更好?这取决于.