c言語ocilibを使用してoraleデータベースに接続

1760 ワード

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:WindowsSystem 32||64ビットにコピーしてくださいC:WindowsSysWOW 64にコピーしてください).
4.vc++で新規プロジェクトを作成し、プロジェクト->settings linkに対応するlibを加える
ociliba.lib  ocilibm.lib  ocilibw.libそれぞれ対応データベース対応文字セットは(ANSI/UTF 8 version||UNICode/UFT 16/USC 2/wchar_t version||ANSI/UTF 8 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();
}