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


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


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

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

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


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊: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平臺的應(yīng)用開發(fā),原有的基于UNIX平臺的商業(yè)軟件也不斷被移植到Linux上來。最典型的,Oracle公司宣布,他的現(xiàn)有的及未來所有的數(shù)據(jù)庫產(chǎn)品和商業(yè)應(yīng)用都將支持Linux平臺。本文所述OCI for Linux的C語言庫,正是Linux平臺上Oracle的C語言接口。
我們知道,在一個復(fù)雜的Oracle數(shù)據(jù)庫應(yīng)用中,C程序代碼由于其語言本身的靈活性、高效性,往往被加入到其商務(wù)邏輯的核心層模塊中。Oracle數(shù)據(jù)庫對C語言的接口就是OCI, Oracle 8.05int sqlo_init(int threaded_mode) 初始化程序庫接口,讀出環(huán)境變量,設(shè)置相應(yīng)的全局變量。當(dāng)前,threaded_mode設(shè)為0。
2)int sqlo_connect(int * dbh, char * connect_str) 連接數(shù)據(jù)庫,dbh為數(shù)據(jù)庫連接描述符,connect_str為用戶名/口令字符串。
3)int sqlo_finish(int dbh) 斷開數(shù)據(jù)庫連接。
4)int sqlo_open(int dbh, char * stmt, int argc, char *argv[]) 打開由stmt確定的查詢語句所返回的游標(biāo)。Argc,argv為查詢的參數(shù),后面我們將用更清晰的方法傳遞參數(shù)。
5)int sqlo_close(int sth) 關(guān)閉由上一個函數(shù)打開的游標(biāo)。
6)int sqlo_fetch(int sth) 從打開的游標(biāo)中獲取一條記錄,并將之存入一個已分配內(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),返回一個打開的游標(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ú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) 將查詢語句的傳出值,按照位置順序與函數(shù)中的變量綁定。
10)int sqlo_execute(int sth, int iterations) 執(zhí)行查詢語句。“Iterations”可設(shè)為“1”。
11)在執(zhí)行完數(shù)據(jù)庫操作后,我們可用int sqlo_commit (int dbh)提交操作,或用int sqlo_rollback(int dbh)回滾操作。
12)Libsqlora8還有其他一些操作函數(shù),這里就不一一列出了。
下面舉幾個例子說明這些函數(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ù)庫
/* 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;
}
以上例子展示了第一種查詢方法,顯然,這種方法較簡單,但不夠靈活。
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;
}
上面的代碼顯示了如何通過名字綁定變量,“:1”在Oracle SQL語句中表示為一個變量(名字隨意),在sqlo_bind_by_name函數(shù)中與packet_name變量綁定。在變量綁定完畢后,就可以調(diào)用sqlo_execute函數(shù)來執(zhí)行這個SQL語句。
好了,我們已經(jīng)向大家介紹了Libsqlora8的基本使用方法,如果希望了解更多內(nèi)容,Libsqlora8的程序包中帶有詳細(xì)的說明和例子,大家不妨自己鉆研一下。有什么心得,歡迎和我聯(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反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

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








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
91入口在线观看| 蜜臀av一区二区在线观看| 欧美精品视频www在线观看| 亚洲欧洲精品一区二区| 亚洲激情一区二区三区| 亚洲国产欧美日韩| 中文精品一区二区三区| 色悠悠亚洲一区二区| 在线观看国产一区| 欧美性感一区二区三区| 欧美亚洲精品一区| 日韩欧美一二区| 日本一区二区免费在线观看视频| 国产精品婷婷午夜在线观看| 亚洲精品乱码久久久久久久久| 亚洲国产精品一区二区www在线 | 亚洲欧洲日韩女同| 一区二区三区四区激情 | 亚洲欧洲一区二区在线播放| 亚洲欧美另类久久久精品2019| 亚洲一区电影777| 毛片不卡一区二区| 国产白丝精品91爽爽久久| 1卡2卡3卡精品视频| 欧美在线激情| 精品视频在线视频| 精品久久久久久久久久久久久久久久久| 99精品桃花视频在线观看| 国产一区999| 国产精品影视天天线| 国产精品自拍网站| 成人av在线一区二区三区| 国产成都精品91一区二区三| fc2成人免费人成在线观看播放 | 国产乱理伦片在线观看夜一区| 麻豆精品一二三| 国产精品一二二区| 99re热视频这里只精品| 久久久久久久有限公司| 亚洲成人网上| 这里只有精品免费| 国产精品家庭影院| 偷窥少妇高潮呻吟av久久免费| 成熟亚洲日本毛茸茸凸凹| 久久国产精品色| 成人片在线免费看| 资源网第一页久久久| 国产成人精品一区二区三区福利| 激情综合色丁香一区二区| 懂色一区二区三区免费观看| 资源网第一页久久久| 国产激情偷乱视频一区二区三区| 欧美精品一区二区在线播放| 亚洲男人的天堂av| 国产v综合v亚洲欧| 欧美污视频久久久| 久久亚洲春色中文字幕久久久| 亚洲亚洲人成综合网络| 99v久久综合狠狠综合久久| 在线一区日本视频| 国产精品成人午夜| 国产一区二区导航在线播放| 欧美lavv| 久久综合色综合88| 久久国产视频网| 欧美一区二区三区在线免费观看| 欧美一级生活片| 天天av天天翘天天综合网| 国产欧美亚洲日本| 精品精品国产高清a毛片牛牛 | 日韩黄色片在线观看| 成人av免费在线看| 日韩一区二区三区免费观看| 青青青伊人色综合久久| 欧美日韩成人一区二区三区| 精品国产a毛片| 国产九色精品成人porny| 日本亚洲欧美天堂免费| 久久国产日韩欧美| 国产日韩欧美激情| 成人av电影免费观看| 欧洲亚洲国产日韩| 亚洲午夜免费电影| 久久综合九色99| 欧美极品少妇xxxxⅹ高跟鞋| 成人深夜福利app| 69p69国产精品| 国产在线视频一区二区| 欧美亚洲日本一区| 美女www一区二区| 91久久香蕉国产日韩欧美9色| 五月天网站亚洲| 欧美日韩一区在线播放| 国产精品久久午夜夜伦鲁鲁| 99精品在线直播| 久久久久亚洲综合| 91丨九色丨蝌蚪丨老版| wwwwww.欧美系列| 91免费精品国自产拍在线不卡| 日韩免费福利电影在线观看| 国产伦精品一区二区三区视频青涩 | 日韩三级精品电影久久久| 蜜臀精品久久久久久蜜臀 | 国产美女在线精品| 欧美福利视频一区| 国产精品一区一区三区| 在线播放欧美女士性生活| 久久99精品国产麻豆不卡| 欧美日韩在线不卡| 国产精品一区在线观看你懂的| 欧美一区二区三区日韩| 成人va在线观看| 久久久久久久久久看片| 国产精品成人观看视频免费| 中文字幕日韩av资源站| 日韩av影视| 奇米色777欧美一区二区| 91黄色在线观看| 精品亚洲成av人在线观看| 在线播放欧美女士性生活| 丁香婷婷深情五月亚洲| 国产偷国产偷亚洲高清人白洁| 国产高清在线一区| 一区二区三区国产| 色综合久久88色综合天天| 久久精品国产99国产精品| 欧美一级免费观看| 99久热re在线精品视频| 亚洲自拍与偷拍| 在线观看欧美黄色| 成人免费毛片a| 国产精品久久综合| 亚洲精品一区二区三区四区五区| 免费人成黄页网站在线一区二区| jvid福利写真一区二区三区| 国产亚洲精品aa| 五月天色一区| 国产在线国偷精品产拍免费yy | 日本一区二区三区国色天香| 久久综合精品一区| 麻豆国产精品一区二区三区| 精品久久久久久久久久久久包黑料 | 国产精品伊人色| 中文字幕欧美激情| 在线综合视频网站| 国产精品18久久久| 国产精品人人做人人爽人人添| 色狠狠久久av五月综合|| 狠狠色丁香九九婷婷综合五月| 久久综合av免费| 亚洲人一区二区| 福利一区二区在线观看| 国产精品久久久久影视| 欧美亚洲国产一区二区三区va| 91在线精品秘密一区二区| 亚洲综合色成人| 日韩欧美国产成人一区二区| 日韩中文一区| av电影在线观看不卡| 亚洲成人手机在线| 日韩精品一区二区三区在线播放 | 亚洲第四色夜色| 精品人在线二区三区| 亚洲国产激情一区二区三区| www.久久久久久久久| 香蕉加勒比综合久久 | 亚洲成av人在线观看| www一区二区| 色综合久久天天综合网| 97人人模人人爽人人喊38tv| 91久久精品一区二区三| 国产丝袜不卡| 丁香五精品蜜臀久久久久99网站| 亚洲一区二区三区视频在线播放| 精品成人佐山爱一区二区| 在线观看日韩高清av| 欧美日韩中文国产一区发布| 91网站视频在线观看| 国产一区二区视频在线| 午夜精品久久久| 亚洲欧美综合色| 精品美女被调教视频大全网站| 91福利国产精品| 欧洲一区二区在线| 国产chinese精品一区二区| 国产精品一区一区三区| 水蜜桃久久夜色精品一区的特点| 亚洲视频电影在线| 国产亚洲精品aa午夜观看| 日韩一区二区中文字幕| 欧美色视频在线| 亚州欧美一区三区三区在线| 精品国产综合| 成人免费观看网站| 成人av资源在线观看| 国产麻豆精品视频| 老司机免费视频一区二区三区| 亚洲www啪成人一区二区麻豆| 最新中文字幕一区二区三区| 亚洲国产精品t66y|