色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 配置oracle鏈接

錢良釵1年前8瀏覽0評論

在使用C語言開發時,經常需要連接Oracle數據庫。在連接Oracle數據庫之前,需要首先進行配置操作。下面將詳細介紹在C語言中如何進行Oracle連接配置。

一般而言,進行Oracle連接配置的時候需要以下四個變量:

OCIEnv *envhp;//環境句柄指針
OCIServer *srvhp;//服務句柄指針
OCIError *errhp;//錯誤句柄指針
OCISession *sesshp;//會話句柄指針

首先需要通過OCIEnvCreate函數來創建一個環境句柄,我們可以通過一個宏來初始化環境句柄,具體方法如下:

static OCIEnv *envhp;//定義環境句柄
OCIEnvCreate(&envhp,//輸出參數,環境句柄指針
(ub4)(OCI_OBJECT|OCI_EVENTS),  //模式,必須是OCI_OBJECT
(dvoid *)0,//封裝通信錯誤處理程序定位的上下文句柄。 
(dvoid *(*)(dvoid *,size_t))0,//客戶機分配向下的函數指針(用于Oracle向下的內存分配需要) 
(dvoid *(*)(dvoid *, dvoid*, size_t))0,//客戶機釋放向下的函數指針(用于Oracle向下的內存釋放需要) 
(dvoid (*)(dvoid *, dvoid *))0,//上下文釋放函數指針  
(size_t)0,      //(size_t)OCI_OBJECT,/*子對象類型*/ 
(dvoid **)0   );
if(!envhp) return NULL;

envhp用來存放Oracle的上下文信息,可以被session句柄和srvhp句柄共享,多個session可以共享同一個envhp句柄,多個 srvhp 也可以共享同一個 envhp 句柄。

接下來是如何連接到服務器,需要使用到srvhp,同時需要建立一個TCPS連接池,具體代碼如下:

static OCIServer *srvhp = NULL;
static OCIError *errhp = NULL;
if (!srvhp)  
{  
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&srvhp, OCI_HTYPE_SERVER, 0, (dvoid **)0);   //分配指針srvhp  
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&errhp, (dvoid **)OCI_HTYPE_ERROR, 0, (dvoid **)0);//分配指針errh  
}  
OCISvcCtx *svchp = NULL;
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&svchp, OCI_HTYPE_SVCCTX, 0, (dvoid **)0);
//連接參數配置
char connectStr[] = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.96.140.74)(PORT=3482))(CONNECT_DATA=(SID=SLDEV)))";  
ub4 connectlength = strlen(connectStr);  
//在服務器端和客戶端設置相應的連接屬性,用戶名以及密碼
char username[] = "HR";
char password[]= "hr123";
ub4 usernamelen = strlen(username);  
ub4 passwordlen = strlen(password);  
if (OCILogon(envhp, errhp, &svchp, (OraText *)username, usernamelen, (OraText *)password, passwordlen, (OraText *)connectStr, connectlength))  
{  
fprintf(stderr, "Logon Error : %s\n", errhp);  
return NULL;  
}

在OCILogon函數中,需要設置用戶名、密碼和服務名,其中服務名也可以是Oracle的tns名。通過此函數可以建立與Oracle數據庫的連接,并且session通過svchp進行管理。

上面代碼中,我們通過OCILogon實現服務器連接以及驗證,獲取ConnectionString,來設置OCILogon的第8個參數,實現連接到Oracle數據庫。連接成功后,便可進行一系列操作,例如查詢數據庫中的數據等。

以上就是使用C語言進行Oracle連接配置的主要步驟,希望對開發者們有所幫助。