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

c oracle連接串

錢浩然1年前9瀏覽0評論

在進行C和Oracle數據庫連接時,連接串是非常重要的部分。C語言中,我們可以使用Oracle提供的OCI接口來連接Oracle數據庫。此外,沒有理由不使用連接串的兩個重要原因是:連接串提供的一個方便的方式來指定數據庫,用戶名和密碼等細節信息,這是僅靠函數調用實現的額外控制。那么,我們該如何使用連接串來連接Oracle數據庫呢?接下來我們詳細說明:

首先,Oracle連接串由8個元素組成,其語法如下:

[//]host[:port][/service_name][:server][/instance_name]

下面對各元素進行解釋:

  • //:表示該服務器是一個遠程數據庫服務器;
  • host:用于指定數據庫所在的機器名稱或IP地址;
  • port:連接到遠程數據庫服務器的端口號。默認端口號1521;
  • service_name:表示在該主機上運行的ORACLE實例名;
  • server:服務名;
  • instance_name:實例名;

下面我們舉個實際連接的例子,假設我們有一個Oracle數據庫運行在IP地址為192.168.0.1的機器上,信息如下:

  • 主機名稱:dbhost1
  • 數據庫服務名:ORCL
  • 監聽端口號:1521

那么連接串應該為:

"192.168.0.1:1521/ORCL"

下面是使用OCI函數來創建一個數據庫連接:

OCIEnv     *envhp;   /* OCI environment handle */
OCIServer  *srvhp;   /* OCI server handle */
OCIError   *errhp;   /* OCI error handle */
OCISession *sesnhp;  /* OCI session handle */
text       *username = (text *)"scott";  /* database user name */
text       *password = (text *)"tiger";  /* database user password */
text       *connect_string = (text *)"192.168.0.1:1521/ORCL";  /* connection string */
/* Initialize OCI environment */
OCIEnvCreate(&envhp, (ub4)OCI_DEFAULT, (dvoid *)0,
(dvoid * (*)(dvoid *,size_t))0,
(dvoid * (*)(dvoid *,dvoid *,size_t))0,
(void (*)(dvoid *,dvoid *))0,
(size_t)0, (dvoid **)0);
/* Create OCI server handle */
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&srvhp,
(ub4)OCI_HTYPE_SERVER, (size_t)0, (dvoid **)0);
/* Create OCI error handle */
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&errhp,
(ub4)OCI_HTYPE_ERROR, (size_t)0, (dvoid **)0);
/* Attach the server handle to the server */
OCIServerAttach(srvhp, errhp,
(text *)connect_string, strlen((char *)connect_string),
(ub4)OCI_DEFAULT);
/* Create OCI session handle */
OCIHandleAlloc((dvoid *)envhp, (dvoid **)&sesnhp,
(ub4)OCI_HTYPE_SESSION, (size_t)0, (dvoid **)0);
/* Set the username and password */
OCIAttrSet((dvoid *)sesnhp, (ub4)OCI_HTYPE_SESSION,
(dvoid *)username, (ub4)strlen((char *)username),
OCI_ATTR_USERNAME, errhp);
OCIAttrSet((dvoid *)sesnhp, (ub4)OCI_HTYPE_SESSION,
(dvoid *)password, (ub4)strlen((char *)password),
OCI_ATTR_PASSWORD, errhp);
/* Begin Session */
OCISessionBegin(envhp, errhp, sesnhp, (ub4)OCI_CRED_RDBMS,
(ub4)OCI_DEFAULT);
/* Set the session in the server */
OCIAttrSet((dvoid *)srvhp, (ub4)OCI_HTYPE_SERVER,
(dvoid *)sesnhp, (ub4)0,
(ub4)OCI_ATTR_SESSION, errhp);

如上例所示,我們首先創建一個OCI環境句柄(OCIEnv),然后用該句柄創建一個OCI服務器句柄 (OCIServer)和一個OCI錯誤句柄 (OCIError)。接著,我們調用 OCIServerAttach 函數來連接遠程ORACLE服務器。如果連接成功,連接字符串包含的數據庫服務名 ORCL 將被賦給服務器句柄。然后,我們創建一個OCI會話句柄(OCISession)并將其與USR 和PWD參數指定的用戶和密碼相關聯,接著調用 OCISessionBegin 函數開始會話。最后,我們通過 OCIAttrSet 函數將會話句柄(OCISession)和上下文句柄(OCIServer)相關聯,最后我們就可以使用OCIStmtPrepare、OCIStmtExecute、OCIFetch 等函數執行相應的SQL語句了。

總之,在使用OCI連接Oracle數據庫時,連接串是一個非常重要的部分。我們需要按照上述語法規則正確配置連接串。然后使用OCI接口函數來創建連接、會話等句柄,獲取需要的SQL語句執行結果。希望本文對于想要學習OCI連接Oracle的開發者們有所幫助。