c 语言使用ocilib连接 orale数据库

因为需求 看了一下使用c语言连接oracle 的方法,不过网上 资料太少了,所以写篇博客记录一下。

之前看了一下OCI,用C语言调OCI的api 太难理解了,之后看到网上有一个 OCILIB,是OCI的封装而且 操作起来并不是那么难于理解,就拿来用了。

附上OCILIB的下载地址http://orclib.sourceforge.net/download/


开发环境: vc++ 6.0 , OCILIB 3.8.0

过       程

1.tools->options->show directories for include files   

将OCILIB的INCLUDE 添加到此。

2.tools->options->show directories for Library files

将OCILIB的LIB目录添加至此。

3.将OCILIB的LIB目录下的*.dll复制到系统根目录(32位系统请复制到C:\Windows\System32||64位请复制到C:\Windows\SysWOW64)。

4.vc++中新建工程 ,并在project ->settings  link加上对应的lib

ociliba.lib  ocilibm.lib  ocilibw.lib 分别对应 数据库对应字符集为(ANSI / UTF8 version||UNICODE/UFT16/USC2/wchar_t version||ANSI / UTF8 for meta data)

到此开发环境搭建完毕。

示例代码

#include "stdafx.h"
#include 
#include 
#pragma comment(lib,"ocilibm.lib")
int main(int argc, char* argv[])
{
clock_t start,end;
    OCI_Connection *cn;
    start=clock();
	if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT|OCI_ENV_CONTEXT))
		return EXIT_FAILURE;
    
	cn = OCI_ConnectionCreate("*****表名****", "****用户名****", "****密码*****", OCI_SESSION_DEFAULT);


	OCI_Statement * st;
	st = OCI_StatementCreate(cn); 


	int nRet =0;


	OCI_ExecuteStmt(st, "****sql语句**");
    
	OCI_Resultset *rs;
    int rownumber=0;
	rs = OCI_GetResultset(st);
	int rowcount=OCI_GetRowCount(rs);
	for (int i=0;OCI_FetchNext(rs);i++)
	{
		number1[i]=OCI_GetInt(rs,1);
		number2[i]=OCI_GetInt(rs,2);
		number3[i]=OCI_GetInt(rs,3);
		rownumber++;
	}
    OCI_Break(cn);
	OCI_Cleanup();
}


你可能感兴趣的:(数据库)