我应该把调用Oracle OCI的代码放在哪里?
Where should I put code which calls Oracle OCI?
我想从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语法。
哪个更好?这取决于.
相关文章:
- 我的重复检查代码中的错误究竟在哪里?
- 我在哪里修复有关模板的C++代码?
- 我在哪里编写在退出 C++ 窗口窗体应用程序之前执行的代码部分
- 此代码中的右值引用在哪里?
- 我在字数C++的代码中哪里出错了
- 这些代码之间的区别在哪里?输出不应该是一样的吗?
- Microsoft计算器中的代码在哪里添加两个数字
- 我的代码到底在哪里不符合键和值类型的规范
- 此代码给出错误的输出无法找出我在哪里犯了错误
- 这个代码的瓶颈在哪里
- 在哪里放置重载<<代码?
- 此(C )代码有什么问题吗?如果是这样,有人可以告诉我我在哪里出错
- 在哪里可以在ASIO的源代码中获取有关IOCP的代码
- Win32 控制台代码在哪里运行?从多个线程使用时控制台挂起
- 在哪里可以找到C++中流行的视频游戏代码
- 我的代码中的错误在哪里
- C++在哪里可以获得sha256 openssl的代码版本
- 模板化的方法代码在哪里分配?
- 与qt设计器中所做的更改相对应的代码在哪里?
- 这段代码在哪里出现分段错误