最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

OTL之Oracle開(kāi)發(fā)總結(jié)

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 11:53:58
文檔

OTL之Oracle開(kāi)發(fā)總結(jié)

OTL之Oracle開(kāi)發(fā)總結(jié):在使用OTL進(jìn)行編程之前,要首先確定使用的Oralce版本以及所選用的字符集。OTL支持目前幾乎所有的主流數(shù)據(jù)庫(kù),可以通過(guò)宏啟用otlv 關(guān)于OTL,網(wǎng)上介紹的也不少,但看來(lái)看去也只是官方的那些文檔。OTL很好用,結(jié)合官方提供的一些例子,多多嘗試才能領(lǐng)悟。經(jīng)過(guò)
推薦度:
導(dǎo)讀OTL之Oracle開(kāi)發(fā)總結(jié):在使用OTL進(jìn)行編程之前,要首先確定使用的Oralce版本以及所選用的字符集。OTL支持目前幾乎所有的主流數(shù)據(jù)庫(kù),可以通過(guò)宏啟用otlv 關(guān)于OTL,網(wǎng)上介紹的也不少,但看來(lái)看去也只是官方的那些文檔。OTL很好用,結(jié)合官方提供的一些例子,多多嘗試才能領(lǐng)悟。經(jīng)過(guò)

在使用OTL進(jìn)行編程之前,要首先確定使用的Oralce版本以及所選用的字符集。OTL支持目前幾乎所有的主流數(shù)據(jù)庫(kù),可以通過(guò)宏啟用otlv

關(guān)于OTL,網(wǎng)上介紹的也不少,但看來(lái)看去也只是官方的那些文檔。OTL很好用,結(jié)合官方提供的一些例子,多多嘗試才能領(lǐng)悟。經(jīng)過(guò)一個(gè)月左右的項(xiàng)目開(kāi)發(fā),對(duì)OTL也有些了解,在這里總結(jié)一下,希望對(duì)剛接觸OTL的新手有所幫助。其中有些地方,比如對(duì)網(wǎng)絡(luò)異常的處理,可是費(fèi)了我兩天的時(shí)間才解決的,我那個(gè)汗哪。廢話少說(shuō),開(kāi)始正題:

一、開(kāi)始前的準(zhǔn)備工作

在使用OTL進(jìn)行編程之前,要首先確定使用的Oralce版本以及所選用的字符集。OTL支持目前幾乎所有的主流數(shù)據(jù)庫(kù),可以通過(guò)宏啟用otlv4.h中對(duì)應(yīng)的數(shù)據(jù)庫(kù)操作接口。

如:使用Oracle 11g R2、字符集選擇UTF8,則可在包含otlv4.h之前聲明以下兩個(gè)宏:

#define OTL_ORA11G_R2

#define OTL_ORA_UTF8

#include "otlv4.h"

....

二、常用類及其常用成員

1. otl_connect類

static int otl_initialize(const int threaded_mode=0):

用于初始化OTL環(huán)境的靜態(tài)函數(shù),參數(shù)指定是用于多線程還是單線程。它不保證線程安全,也就是說(shuō),如果多個(gè)線程共享使用一個(gè)otl_connect對(duì)象,需要加鎖進(jìn)行控制。有個(gè)同事因?yàn)樵诙嗑€程環(huán)境下使用了默認(rèn)的參數(shù)0,就導(dǎo)致了程序異常。但是單線程環(huán)境下,參數(shù)設(shè)1是沒(méi)有問(wèn)題的。所以,可以考慮將此參數(shù)直接設(shè)為1。

void rlogon(...):

這個(gè)函數(shù)有多個(gè)版本,請(qǐng)注意參考官方文檔中與相應(yīng)數(shù)據(jù)庫(kù)版本對(duì)應(yīng)的函數(shù)聲明。11g中用到的參數(shù)說(shuō)明如下:

const char *connect_str:連接字符串,格式為:"用戶名/密碼@數(shù)據(jù)庫(kù)服務(wù)名"

const int aauto_commit:自動(dòng)提交模式。若此參數(shù)設(shè)為0(默認(rèn)),則通過(guò)此連接對(duì)象執(zhí)行的事務(wù)不會(huì)自動(dòng)提交。如使用direct_exec執(zhí)行刪除記錄的操作時(shí),需要手動(dòng)調(diào)用commit()成員函數(shù)提交事務(wù);若設(shè)為1則通過(guò)此otl_connect對(duì)象開(kāi)啟的事務(wù)會(huì)自動(dòng)提交。

long direct_exec(...):

const char *sqlstm: 指定所要執(zhí)行的“靜態(tài)SQL語(yǔ)句”,即不產(chǎn)生輸入或輸出的SQL語(yǔ)句。如delete from book whereC++';

delStream.flush(); //立即執(zhí)行刪除操作,盡管當(dāng)前流中只有一條記錄

long get_rpc():

獲取流中SQL語(yǔ)句執(zhí)行后所影響到的記錄數(shù),如插入100條記錄,則調(diào)用此函數(shù)返回的即為100

int good():

判斷流對(duì)象是否已正常打開(kāi),已打開(kāi)返回1。注意:若復(fù)用一個(gè)流對(duì)象時(shí),必須先調(diào)用close函數(shù)將其關(guān)閉,,然后再調(diào)用open重新打開(kāi)。

int get_dirty_buf_len():

獲取當(dāng)前流對(duì)象緩沖區(qū)中的記錄數(shù),其最大值為緩沖區(qū)size-1。每當(dāng)緩沖區(qū)滿時(shí)會(huì)自動(dòng)刷新,刷新后再調(diào)用此函數(shù)時(shí)返回0

3.otl_exception類

該類的幾個(gè)成員用于表示異常的信息,如:

char stm_text[2048]:出錯(cuò)的SQL語(yǔ)句;

char var_info[256]:若在流中使用了與實(shí)際類型不符的綁定變量,此數(shù)組的值為綁定變量的信息;

unsigned char msg[1000]:這個(gè)我比較喜歡用,此數(shù)組顯示出具體的異常信息(包括oracle返回的錯(cuò)誤碼),如連接超時(shí)等等。

linux

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

OTL之Oracle開(kāi)發(fā)總結(jié)

OTL之Oracle開(kāi)發(fā)總結(jié):在使用OTL進(jìn)行編程之前,要首先確定使用的Oralce版本以及所選用的字符集。OTL支持目前幾乎所有的主流數(shù)據(jù)庫(kù),可以通過(guò)宏啟用otlv 關(guān)于OTL,網(wǎng)上介紹的也不少,但看來(lái)看去也只是官方的那些文檔。OTL很好用,結(jié)合官方提供的一些例子,多多嘗試才能領(lǐng)悟。經(jīng)過(guò)
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top