久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇Linux專區(qū)Linux應(yīng)用開發(fā) → Oracle應(yīng)用Linux開發(fā)C


  共有8815人關(guān)注過(guò)本帖樹形打印

主題:Oracle應(yīng)用Linux開發(fā)C

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
Oracle應(yīng)用Linux開發(fā)C  發(fā)帖心情 Post By:2010-11-23 11:05:05

隨著Linux操作系統(tǒng)的不斷完善與發(fā)展,出現(xiàn)了大量基于 Linux平臺(tái)的應(yīng)用開發(fā),原有的基于UNIX平臺(tái)的商業(yè)軟件也不斷被移植到Linux上來(lái)。最典型的,Oracle公司宣布,他的現(xiàn)有的及未來(lái)所有的數(shù)據(jù)庫(kù)產(chǎn)品和商業(yè)應(yīng)用都將支持Linux平臺(tái)。本文所述OCI for Linux的C語(yǔ)言庫(kù),正是Linux平臺(tái)上Oracle的C語(yǔ)言接口。
我們知道,在一個(gè)復(fù)雜的Oracle數(shù)據(jù)庫(kù)應(yīng)用中,C程序代碼由于其語(yǔ)言本身的靈活性、高效性,往往被加入到其商務(wù)邏輯的核心層模塊中。Oracle數(shù)據(jù)庫(kù)對(duì)C語(yǔ)言的接口就是OCI, Oracle 8.05int sqlo_init(int threaded_mode) 初始化程序庫(kù)接口,讀出環(huán)境變量,設(shè)置相應(yīng)的全局變量。當(dāng)前,threaded_mode設(shè)為0。
2)int sqlo_connect(int * dbh, char * connect_str) 連接數(shù)據(jù)庫(kù),dbh為數(shù)據(jù)庫(kù)連接描述符,connect_str為用戶名/口令字符串。
3)int sqlo_finish(int dbh) 斷開數(shù)據(jù)庫(kù)連接。
4)int sqlo_open(int dbh, char * stmt, int argc, char *argv[]) 打開由stmt確定的查詢語(yǔ)句所返回的游標(biāo)。Argc,argv為查詢的參數(shù),后面我們將用更清晰的方法傳遞參數(shù)。
5)int sqlo_close(int sth) 關(guān)閉由上一個(gè)函數(shù)打開的游標(biāo)。
6)int sqlo_fetch(int sth) 從打開的游標(biāo)中獲取一條記錄,并將之存入一個(gè)已分配內(nèi)存空間中。
7)const char **sqlo_values(int sth, int *numbalues, int dostrip) 從內(nèi)存中返回上一次sqlo_fetch取得的值,是以字符串形式返回的。
8)以下介紹另一種檢索方式,int sqlo_prepare(int dbh, char const *stmt),返回一個(gè)打開的游標(biāo)sth。
9)int sqlo_bind_by_name(int sth, const char * param_name, int param_type, const void * param_addr, unsigned int param_size, short * ind_arr, int is_array) 將查詢語(yǔ)句的傳入?yún)?shù),按照名字的形式與函數(shù)中的變量綁定。如果你使用數(shù)組,那么參數(shù)param_addr和ind_arr必須指向該數(shù)組。
int sqlo_bind_by_pos(int sth, int param_pos, int param_type, const void * param_addr, unsigned int param_size, short * ind_arr, int is_array) 將查詢語(yǔ)句的傳出值,按照位置順序與函數(shù)中的變量綁定。
10)int sqlo_execute(int sth, int iterations) 執(zhí)行查詢語(yǔ)句。“Iterations”可設(shè)為“1”。
11)在執(zhí)行完數(shù)據(jù)庫(kù)操作后,我們可用int sqlo_commit (int dbh)提交操作,或用int sqlo_rollback(int dbh)回滾操作。
12)Libsqlora8還有其他一些操作函數(shù),這里就不一一列出了。
下面舉幾個(gè)例子說(shuō)明這些函數(shù)如何使用。
cstr = "ocitest/ocitest"; //用戶名/口令
status = sqlo_init(0);
if (SQLO_SUCCESS != status)
{ printf ("sql_init failed. Exitingn");
exit(1);
}
status = sqlo_connect(&dbh, cstr); // int dbh
以上源代碼,顯示了如何連接數(shù)據(jù)庫(kù)
/* Select all and display */
char *select_stmt="SELECT cname, clength, colid FROM ocicolu";
if (0>(sd = sqlo_open(dbh, select_stmt, 0, NULL)))
{ printf("sqlo_open failed: %sn", sqlo_geterror(dbh));
return 0;
}
while (0 == sqlo_fetch(sd,1))
{ v = sqlo_values(sd, NULL, 1);
printf("Result: %sn",v);
}
if (0 > sqlo_close(sd))
{ printf("sqlo_open failed: %sn", sqlo_geterror(dbh));
return 0;
}
以上例子展示了第一種查詢方法,顯然,這種方法較簡(jiǎn)單,但不夠靈活。
char *update_stmt =
"UPDATE ocitest.upload_log SET upload_fresh = where log_name = :1";
if (0 <= (sth = sqlo_prepare(dbh, update_stmt)))
{ if (SQLO_SUCCESS !=
(sqlo_bind_by_name(sth, ":1", SQLOT_STR, packet_name, 64, NULL, 0)
))
{ printf("sqlo_bind_param failed failed: %sn", sqlo_geterror(dbh) );
return 0;
}
}
if (SQLO_SUCCESS != sqlo_execute(sth, 1))
{ printf("sqlo_execute failed: %sn", sqlo_geterror(dbh) );
return 0;
}
上面的代碼顯示了如何通過(guò)名字綁定變量,“:1”在Oracle SQL語(yǔ)句中表示為一個(gè)變量(名字隨意),在sqlo_bind_by_name函數(shù)中與packet_name變量綁定。在變量綁定完畢后,就可以調(diào)用sqlo_execute函數(shù)來(lái)執(zhí)行這個(gè)SQL語(yǔ)句。
好了,我們已經(jīng)向大家介紹了Libsqlora8的基本使用方法,如果希望了解更多內(nèi)容,Libsqlora8的程序包中帶有詳細(xì)的說(shuō)明和例子,大家不妨自己鉆研一下。有什么心得,歡迎和我聯(lián)系。E-mail:nick_chen@yeah.net /*-------------------------------------------------------------------------
* testlora.c
* Test programm for libsqlora8(Kai Poitschke)
* Assuming you installed the library with prefix=/usr/local, the command
* to compile this is:
* gcc -o sample sample.c -lsqlora8 -L$ORACLE_HOME/lib -lclntsh
*-----------------------------------------------------------------------*/
#include
#include
#include #include "sqlora.h" #define MAX_ITERS 10 #define MAX_LOOPS 1 /* how many time we run the tests */ #define CLOSE_CURSOR 1 /*-------------------------------------------------------------------------
* create our test table
*-----------------------------------------------------------------------*/
int create_table( int dbh )
{
int nkey;
char ckey;
double nv

支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

Oracle應(yīng)用Linux開發(fā)C








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日本高清无吗v一区| 亚洲综合999| 中文字幕五月欧美| 在线播放中文字幕一区| 在线一区二区视频| 国产精品国产精品国产专区蜜臀ah | 在线播放欧美女士性生活| 51国偷自产一区二区三区| 成人av电影免费在线播放| 99精品久久免费看蜜臀剧情介绍| 丝袜亚洲另类欧美| 国产亚洲欧美色| 欧美色网一区二区| 欧洲一区二区在线观看| 成人精品视频网站| 99久久精品情趣| 免费成人在线观看| 国产精品久久看| 欧美一级生活片| 亚洲在线不卡| 欧美视频一区二区三区四区 | 日韩女优视频免费观看| 色综合久久中文字幕| 欧美最新大片在线看 | 久久九九全国免费| 91麻豆精品国产91久久久使用方法 | 欧美理论在线播放| 视频在线99| 96成人在线视频| 国产成人精品一区二区三区四区| 成人黄色av网站在线| 成人永久免费| 91在线码无精品| 好吊色欧美一区二区三区| caoporen国产精品视频| 国产精品一区二区三区在线 | 国产精品乱子乱xxxx| 亚洲精美视频| 欧美一级午夜免费电影| 18成人在线观看| 精品亚洲成a人| 久草精品在线观看| 91精品国产综合久久久久久丝袜| 欧美午夜精品久久久久免费视| 欧美亚洲日本一区| 欧美午夜宅男影院| www日韩大片| 午夜精品一区二区三区三上悠亚| 成人在线综合网| 天天综合色天天综合色hd| 日韩欧美精品在线视频| 日韩一区二区三区在线观看| 综合在线观看色| 国产99久久精品| 亚洲欧美丝袜| 色婷婷亚洲婷婷| 久久网站热最新地址| 国产欧美日韩综合精品一区二区| 天堂精品中文字幕在线| 成人三级在线| 欧美一区二区三区成人久久片| 在线播放一区二区三区| 精品日韩成人av| 久久亚洲精华国产精华液| 久久久久久免费网| 青青草国产成人99久久| 精品欧美一区二区精品久久| 欧美视频小说| 亚洲精品在线观看网站| 免费成人结看片| 国产1区2区3区精品美女| 任我爽在线视频精品一| 欧美精品一区二区三区很污很色的| 丝袜诱惑亚洲看片| 极品日韩久久| 色婷婷综合久久久中文一区二区| 久久久久久久久免费| 久久成人久久爱| 成人av电影在线| 精品国产一区二区三区麻豆小说| 91麻豆精品91久久久久同性| 日本欧美大码aⅴ在线播放| 久久偷看各类wc女厕嘘嘘偷窃| 久久综合给合久久狠狠狠97色69| 国内外成人在线视频| 一级二级三级欧美| 日韩欧美高清在线| 国产精品午夜免费| 亚洲精品视频在线观看网站| 91尤物视频在线观看| 日韩亚洲电影在线| 亚洲色图视频网站| wwwxx欧美| 国产亚洲成av人在线观看导航| 亚洲精品国产一区二区三区四区在线 | 久久蜜桃一区二区| 成人精品gif动图一区| 欧美久久久久久久久中文字幕| 久久综合丝袜日本网| 亚洲最新在线观看| 久99久视频| 91精品国产乱码久久蜜臀| 日产国产欧美视频一区精品| 一区二区三区四区视频在线| 一片黄亚洲嫩模| 日韩av电影免费在线观看| 91精品国产综合久久福利软件 | 在线成人性视频| 亚洲综合激情网| 日韩精品一区二区三区四区五区| 欧美日韩国产综合久久 | 6080日韩午夜伦伦午夜伦| 国产精品国产a级| 国产精品久久久久免费| 欧美日本视频在线| 国产精品亚洲专一区二区三区| 久久久精彩视频| 亚洲日本成人在线观看| 欧美一级二级三级| 午夜精品久久久久久久久久| 91免费看`日韩一区二区| 久久久久国产精品麻豆| 精东粉嫩av免费一区二区三区| 欧美系列在线观看| 国产成人综合精品三级| 精品国产一区二区三区av性色| eeuss鲁片一区二区三区在线观看| 久久精品视频一区| 欧美二区在线看| 首页国产丝袜综合| 欧美亚洲精品日韩| 亚洲18色成人| 91精品在线免费观看| 日本视频一区二区三区| 免费成人看片网址| 婷婷六月综合亚洲| 69久久99精品久久久久婷婷 | 久久精品一区二区三区不卡免费视频| 亚洲一区二区三区四区在线免费观看 | 欧美日韩亚洲综合在线 | 91亚洲精品一区二区乱码| 日本视频一区二区不卡| 四虎永久在线精品免费一区二区| 亚洲你懂的在线视频| 91精品国产91综合久久蜜臀| 精品一卡二卡三卡四卡日本乱码 | 欧美午夜不卡视频| 欧美成人性战久久| 91免费版pro下载短视频| 中文字幕在线一区免费| 99爱精品视频| 日韩精品一区二区三区四区| 久久国产精品一区二区| 2023国产精品自拍| 亚洲7777| 国产.精品.日韩.另类.中文.在线.播放| 欧美主播一区二区三区| 五月开心婷婷久久| 日韩精品一区二区在线| 高清久久久久久| 一区二区三区免费在线观看| 4438亚洲最大| 日本亚洲自拍| 96av麻豆蜜桃一区二区| 亚洲成人综合视频| 亚洲精品乱码久久久久久蜜桃91| 亚洲婷婷综合色高清在线| 欧美私人免费视频| 你懂的网址一区二区三区| 国产一区二区三区免费播放| 亚洲欧美偷拍另类a∨色屁股| 精品视频1区2区3区| 国产精品资源在线观看| 日韩视频免费直播| 欧美日韩另类丝袜其他| 亚洲国产精品一区二区www | 国产在线一区二区三区播放| 狂野欧美性猛交blacked| 国产精品欧美精品| 日韩欧美一区二区三区久久婷婷| 高清国产一区二区| 青娱乐精品视频| 综合中文字幕亚洲| 一区二区三区四区免费视频| av爱爱亚洲一区| 精品一二三四区| 亚洲一区成人在线| 欧美色偷偷大香| 欧美中日韩一区二区三区| 日韩成人免费电影| 亚洲女同女同女同女同女同69| 91精品国产日韩91久久久久久| 成人一级片网址| 国产精品丝袜一区| 精品久久久久久无| 欧美精品三级在线观看| 一本久道久久综合狠狠爱亚洲精品| 国产精品v欧美精品∨日韩| 亚洲一区视频在线观看视频|