c oci函式的基本使用

2021-08-20 07:58:42 字數 2606 閱讀 2987

oci函式的基本使用
oracle呼叫介面(oracle call inte***ce簡稱oci)提供了一組可對oracle資料庫進行訪問的界面子例程(函式),通過在第三代程式語言(如c語言)中進行呼叫可達到訪問oracle資料庫的目的。

#引入庫:

#include

.h>

#定義變數:

ocienv *envhp; //環境控制代碼

ocierror *errhp; //錯誤控制代碼

ociserver *srvhp; //伺服器控制代碼

ocisvcctx *svchp; //服務環境控制代碼

ocistmt *stmthp; //語句控制代碼

#c++呼叫oci連線資料庫步驟:

ocienvcreate():建立環境控制代碼,使用方式如下:

ocienvcreate(&envhp,oci_default,(dvoid*)0,null,null,null,0,(dvoid**)0);

ocihandlealloc((dvoid*)envhp,(dvoid**)&errhp,oci_htype_error,(size_t)0,(dvoid**)0); //分配錯誤控制代碼

ocihandlealloc((dvoid*)envhp,(dvoid**)&srvhp,oci_htype_server,(size_t)0,(dvoid**)0); //分配伺服器控制代碼

ocihandlealloc((dvoid*)envhp,(dvoid**)&svchp,oci_htype_svcctx,(size_t)0,(dvoid**)0); //分配服務控制代碼

ocihandlealloc((dvoid*)envhp,(dvoid**)&stmthp,oci_htype_stmt,(size_t)0,(dvoid**)0); //分配執行語句控制代碼

ociattrset((dvoid*)svchp,oci_htype_svcctx,(dvoid*)srvhp,(ub4)0,oci_attr_server,(ocierror*)errhp); //設定服務使用的伺服器控制代碼屬性。

ocilogon():連線資料庫,使用如下:

ocilogon(envhp,errhp,&svchp,(oratext*)username,(ub4)strlen(username),(oratext*)pwd,(ub4)strlen(pwd),(oratext*)db,(ub4)strlen(db))

如果返回oci_success則說明連線資料庫成功,否則失敗,根據失敗原因查詢問題。

釋放oci連線步驟:

如果資料庫已連線,呼叫函式:ocilogoff(svchp,errhp),如果成功,則呼叫函式:ocihandlefree((dvoid*)envhp,oci_htype_env)釋放環境資源控制代碼。

c++呼叫oci插入、刪除、修改資料庫方法:

ocistmtprepare():準備執行語句,使用方式如下:

ocistmtprepare(stmthp,errhp,(text*)(unsigned char*)p_str,(ub4)strlen(p_str),oci_ntv_syntax,oci_default); //準備sql語句,將sql語句繫結到stmthp語句控制代碼

ocistmtexecute():執行sql語句,使用方式如下:

ocistmtexecute( svchp, stmthp, errhp, (ub4) 1, (ub4) 0, (ocisnapshot *) null,(ocisnapshot *) null, (ub4) oci_default); //執行sql語句

ocitranscommit():提交事務,使用方式如下:

ocitranscommit(svchp,errhp,0); //提交事務。

c++呼叫oci查詢資料庫方法:

ocistmtprepare():準備執行語句,使用方式如下:

ocistmtprepare(stmthp,errhp,(text*)(unsigned char*)p_str,(ub4)strlen(p_str),oci_ntv_syntax,oci_default); //準備sql語句,將sql語句繫結到stmthp語句控制代碼

ocidefinebypos():根據資料位置,定義資料格式,使用方式如下:

ocidefinebypos(stmthp, &defnp1, errhp, 1, (dvoid*) &res, (sword) sizeof(res), sqlt_chr, (dvoid *) 0, (ub2 *) 0, (ub2 *) 0, oci_default); //繫結資料格式

ocistmtexecute():執行sql語句,使用方式如下:

ocistmtexecute( svchp, stmthp, errhp, (ub4) 1, (ub4) 0, (ocisnapshot *) null,(ocisnapshot *) null, (ub4) oci_default); //執行sql語句

ocistmtfetch():遍歷結果集合,使用方式如下:

ocistmtfetch(stmthp, errhp, (ub4) 1, oci_fetch_next, 1);

相關**見:

函式的基本使用

函式就是一種工具,事先準備工具 的過程就是函式的定義,拿來就用 就是函式的呼叫 函式可以重複呼叫 1.防止 冗餘 2.的可讀性差 定義函式 製造工具 呼叫函式 使用工具 函式的使用原則 先定義,後呼叫 函式的命名規範和變數名一樣 def index 引數1,引數2.def 關鍵字 index 函式名...

Swift 函式的基本使用

main.swift testfunctions created by 朱立志 on 14 6 11.import foundation println hello,world 單個引數輸入函式 func sayhello personname string string println sayhe...

基本IO函式的使用

摘要 本文簡單介紹檔案操作的三個函式 open,read,write 的基本用法。詳細說明了open函式的用法。所需標頭檔案 include include include 函式定義 int open const char pathname,int flags int open const char...