最近尝试了一下c++通过ocilib访问Oracle数据库,用MinGW编译,源码很容易找到,例如ocilib自带的demo中fetch.c
记录一下遇到的问题和解决办法:
1、连接失败
报错信息类似这样:undefined reference to `OCI_Initialize'
解决办法:
ocilib的文档中已经有明确说明:
To use OCILIB in a project :
- include "ocilib.h" in your application
- define call convention (OCI_API) to __stdcall
- define charset mode (OCI_CHARSET_ANSI | OCI_CHARSET_WIDE)
所以在头文件中增加下面两行就可以了:
#define OCI_API __stdcall
#define OCI_CHARSET_ANSI UTF-8
2、OCI_Initialize失败
问题现象:OCI_Initialize返回FALSE
问题原因:我遇到的原因是我安装的是64位的Oracle,而我的程序是32位的,无法调用64位的oci.dll
解决办法:
1、安装一个32位的Oracle客户端
这个可以在Oracle网站上单独下载,无需安装,解压即可。
2、在OCI_Initialize的第二个参数中指定oci.dll所在的路径,类似下面这样:
OCI_Initialize(NULL, "C:\\Programs\\Oracle\\product\\11.2.0\\dbhome_1\\instantclient_x32", OCI_ENV_DEFAULT)
总结:
OCILib非常好用,效率很高,文档也比较清楚。
相关推荐
Windows下Qt+minGW+CMake+Opencv4.3编译配置。使用cmake+mingw编译好的opencv4.3版本的安装包,直接白嫖就可以。
Msys: 1.0.10 MinGW:5.1.4 make: 3.81.90 ...这是我自己根据一篇比较新的blog搭建的mingw+msys环境,用来编译ffmpeg的,各种版本都可以编译。 基本上解决了常出现的各种问题。移植可用! 文章地址: ...
QtCreator开发环境下(minGW编译器),进行OpenGL编程时使用的第三方库,使用时只需将压缩包内文件夹内容复制到Qt安装目录下的minGW目录下的对应文件夹内,如:D:\Qt5.4\5.4\mingw491_32\bin;并在新建工程的.pro...
为了弥补之前网上资料更新不及时,导致Windows下使用MinGW + yasm环境编译linux下开发的功能库(如ffmpeg)不能正确编译的问题。 本资源里面包含了yasm、MinGW等工具截止目前的最新版本。请各位童鞋根据需要下载。
Windows 下以 Eclipse 和 MinGW Qt安裝及設置
minGW+MSYS+flex+bison完全套件 ,众所周知的GUN,免去大家到处寻找的麻烦
MinGW+Vim(御用编辑器),强大的编译器+编辑器
Windows下MSYS+MinGW+GTK+GLADE+Eclipse环境搭建
Eclipse+MinGW+CDT设置文档,包括MinGW手动安装,环境变量设置等
NULL 博文链接:https://zsnlovewl.iteye.com/blog/657448
NULL 博文链接:https://zengxx1989.iteye.com/blog/563344
搭建MinGW+CodeBlocks+wxPack开发环境
SciTE是一个多平台下应用的轻量级代码编辑器,这个集成包将Scite与MinGW(实际上是从Dev那里借来的)有效结合,只需放到U盘里,随便将文件夹拷贝到任何地方,只需启动其中的SciTE.exe即可直接编辑代码,保存文件后...
MinGW+Sublime Text3安装包,利用MinGW可以实现Sublime Text3对C语言进行编译和运行。
windows下使用MinGW+msys编译ffmpeg.pdf