在linux 下使用otl 来连接oracle10g 数据库,当前只写了oracle的一个查询语句
。并提供了编译的Makefile说明
Linux 下Otl 连接oracle的简单例子
这个otl弄的很纠结的了,上网上在linux 下只见有例子 ,但是都没见有编译的命令出现,搞得一直没有编译通过。不过最后终于弄好了
编译的时候出现的几个问题了:
1 otl_connect otl_connect' was not declared in this scope 还有not a type
2 /oci.h:461:23: error: oratypes.h: No such file or directory
3 undefined reference to `OCIServerDetach' 等
等等 主要的问题还是一些头文件没有被包含进去
下面参照一个例子来说明:
//文件名称:otloracle.cpp
#include //c的标准头
#include //c++头文件
#define OTL_ORA10G //指定连接的数据库类型 这个是必须的了,
//且注意了 这些宏必须定义在 #include "otlv4.h",不然编译时会报otl_connect not a type // 即说:otl_connect 并不是一种类型,但是当你去 otlv4.h 中去查看时,确实有这么的一 //个类
//相关的宏定义列表 http://www.wendangwang.com/otl3_compile.htm
#define OTL_ANSI_CPP //使用标准的c++库
#define ConnectDb "tspdb/tspdb@tspdb" //我的数据连接的用户和密码以及ORACLE_SID #include "otlv4.h" //这个就是otl的库了 使用otl只有这么一个头文件 ,相关缺少的库文件在编译的时候需要再去查,一般oracle 就是一个libclntsh.so
//#include "oci.h" //这个没什么用,不需要
using namespace std; //标准的I/O命名空间
char strSelect[100]={"select businum,businame,crt_date from m01_busi_type"}; //查询的语句
otl_connect oracledb; //定义个数据库连接实例
int selectDB() //查询的函数
{
otl_stream oraout(100,strSelect,oracledb);
int count=0;
char myfeild1[64]="";
char myfeild2[64]="";
char myfeild3[64]="";
cout<
while(!oraout.eof())
{
oraout>>myfeild1;
oraout>>myfeild2;
oraout>>myfeild3;