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

以文本方式查看主題

-  曙海教育集團論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  Linux應用開發  (http://www.rfoamep.cn/bbs/list.asp?boardid=32)
----  Oracle應用Linux開發C  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=32&id=1673)

--  作者:wangxinxin
--  發布時間:2010-11-23 11:05:05
--  Oracle應用Linux開發C
隨著Linux操作系統的不斷完善與發展,出現了大量基于 Linux平臺的應用開發,原有的基于UNIX平臺的商業軟件也不斷被移植到Linux上來。最典型的,Oracle公司宣布,他的現有的及未來所有的數據庫產品和商業應用都將支持Linux平臺。本文所述OCI for Linux的C語言庫,正是Linux平臺上Oracle的C語言接口。
我們知道,在一個復雜的Oracle數據庫應用中,C程序代碼由于其語言本身的靈活性、高效性,往往被加入到其商務邏輯的核心層模塊中。Oracle數據庫對C語言的接口就是OCI, Oracle 8.05int sqlo_init(int threaded_mode) 初始化程序庫接口,讀出環境變量,設置相應的全局變量。當前,threaded_mode設為0。
2)int sqlo_connect(int * dbh, char * connect_str) 連接數據庫,dbh為數據庫連接描述符,connect_str為用戶名/口令字符串。
3)int sqlo_finish(int dbh) 斷開數據庫連接。
4)int sqlo_open(int dbh, char * stmt, int argc, char *argv[]) 打開由stmt確定的查詢語句所返回的游標。Argc,argv為查詢的參數,后面我們將用更清晰的方法傳遞參數。
5)int sqlo_close(int sth) 關閉由上一個函數打開的游標。
6)int sqlo_fetch(int sth) 從打開的游標中獲取一條記錄,并將之存入一個已分配內存空間中。
7)const char **sqlo_values(int sth, int *numbalues, int dostrip) 從內存中返回上一次sqlo_fetch取得的值,是以字符串形式返回的。
8)以下介紹另一種檢索方式,int sqlo_prepare(int dbh, char const *stmt),返回一個打開的游標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) 將查詢語句的傳入參數,按照名字的形式與函數中的變量綁定。如果你使用數組,那么參數param_addr和ind_arr必須指向該數組。
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) 將查詢語句的傳出值,按照位置順序與函數中的變量綁定。
10)int sqlo_execute(int sth, int iterations) 執行查詢語句。“Iterations”可設為“1”。
11)在執行完數據庫操作后,我們可用int sqlo_commit (int dbh)提交操作,或用int sqlo_rollback(int dbh)回滾操作。
12)Libsqlora8還有其他一些操作函數,這里就不一一列出了。
下面舉幾個例子說明這些函數如何使用。
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
以上源代碼,顯示了如何連接數據庫
/* 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函數中與packet_name變量綁定。在變量綁定完畢后,就可以調用sqlo_execute函數來執行這個SQL語句。
好了,我們已經向大家介紹了Libsqlora8的基本使用方法,如果希望了解更多內容,Libsqlora8的程序包中帶有詳細的說明和例子,大家不妨自己鉆研一下。有什么心得,歡迎和我聯系。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
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
久久久91精品国产一区二区三区| 国产精品成人在线观看| 欧美mv日韩mv国产| 亚洲午夜视频在线观看| 成人亚洲一区二区一| 婷婷久久伊人| 久久亚洲私人国产精品va媚药| 日本强好片久久久久久aaa| 国产精品香蕉视屏| 欧美www视频| 激情综合网最新| 欧美在线激情| 国产精品免费久久| 99视频一区二区| 欧美日韩国产成人在线91| 亚洲最新视频在线播放| 国产精品对白一区二区三区 | 久久久三级国产网站| 麻豆精品视频在线观看| 亚洲欧美99| 亚洲欧美日韩国产另类专区| 古典武侠综合av第一页| 日韩欧美电影一区| 国产一区二区久久| 欧美日本在线一区| 精品一区二区三区在线播放视频| 亚洲欧洲精品一区二区| 一区二区三区在线观看动漫 | 欧美精品在线视频| 日本aⅴ精品一区二区三区| 日韩国产一区久久| 亚洲综合图片区| 久久人人97超碰人人澡爱香蕉| 欧美激情一区在线观看| 91在线精品一区二区| 2023国产精品| dy888夜精品国产专区| 久久精品视频免费观看| 5566av亚洲| 国产三级欧美三级日产三级99 | 亚洲韩国在线| 亚洲永久精品国产| 日本不卡在线观看| 亚洲国产你懂的| 一本色道久久综合亚洲二区三区| 亚洲愉拍自拍另类高清精品| 手机看片福利永久国产日韩| 亚洲第四色夜色| 一区二区在线高清视频| 天天爽夜夜爽夜夜爽精品视频| 日韩少妇中文字幕| 午夜电影网一区| 色老头久久综合| 国产综合久久久久影院| 欧美一区二区视频在线观看2020| 国产91精品入口| 26uuu国产在线精品一区二区| 99久久国产综合精品麻豆| 国产欧美1区2区3区| 久草热久草热线频97精品| 亚洲妇熟xx妇色黄| 欧美午夜精品一区二区三区| 国产大陆亚洲精品国产| 久久久不卡网国产精品二区| 久久99国产精品99久久| 午夜视频在线观看一区| 欧美日本视频在线| 97久草视频| 亚洲精品精品亚洲| 在线影视一区二区三区| 国产.欧美.日韩| 欧美极品xxx| 亚洲欧美日产图| 国产一区二区成人久久免费影院 | 国产91丝袜在线18| 欧美激情自拍偷拍| 亚洲综合第一| 成人在线视频一区| 中文字幕在线观看不卡| 一区二区三区免费看| 国产成a人无v码亚洲福利| 国产精品乱码一区二区三区软件 | av在线不卡观看| 亚洲地区一二三色| 日韩一区二区麻豆国产| 国产亚洲精品久久飘花| 日韩av一区二区在线影视| 精品少妇一区二区三区免费观看| 蜜桃麻豆www久久国产精品| 蜜臀av性久久久久av蜜臀妖精| 欧美videofree性高清杂交| 欧美xxxx黑人又粗又长精品| 精品一区二区久久久| 日本一区二区综合亚洲| 制服诱惑一区| 国产99在线免费| 久久国产综合精品| 亚洲欧洲一区二区三区| 欧美高清一级片在线| 欧美不卡在线一区二区三区| 国产成人午夜99999| 亚洲最大的成人av| 精品国产一区二区亚洲人成毛片| 日韩精品一区二区三区外面| 成人av电影免费观看| 亚洲成a人片综合在线| 亚洲精品在线免费观看视频| 色综合婷婷久久| 国产精品.com| 国产精选一区二区三区| 一区二区久久久| 久久久久久9999| 欧美色网站导航| 日本精品一区二区三区高清 久久 日本精品一区二区三区不卡无字幕 | 国产精品自拍网站| 亚洲视频1区2区| 欧美va天堂va视频va在线| 亚洲人成网站在线播放2019| 成人国产一区二区| 激情久久久久久久久久久久久久久久| 国产精品黄色在线观看 | 精品亚洲免费视频| 亚洲欧美一区二区久久| 精品国产亚洲一区二区三区在线观看| 在线看无码的免费网站| 国产精品日韩一区二区三区 | 色女人综合av| 粉嫩av四季av绯色av第一区| 国产麻豆午夜三级精品| 亚洲午夜免费电影| 中文字幕一区二区三区在线不卡 | 理论电影国产精品| 日韩美女视频一区| 久久这里只有精品首页| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产日韩综合一区| 久久国产精品免费一区| 99精品视频一区二区三区| 国产综合色精品一区二区三区| 婷婷国产在线综合| 亚洲欧美日韩成人高清在线一区| 精品久久久久一区二区国产| 欧美日韩你懂得| 色综合久久久久久久久| 日韩色妇久久av| 欧美日韩一区在线观看视频| 国产一区喷水| 不卡日韩av| 97超碰在线播放| 91免费版pro下载短视频| 成人性生交大片免费看视频在线| 久久精品99国产精品| 丝袜美腿亚洲综合| 亚洲国产精品久久人人爱蜜臀| 最新不卡av在线| 国产精品理论片在线观看| 亚洲国产高清不卡| 中文字幕不卡在线观看| 国产欧美一区二区精品性色超碰| 日韩精品一区二区三区三区免费| 欧美电影影音先锋| 欧美日韩精品免费观看视频| 欧美色国产精品| 欧美亚洲国产一区在线观看网站| 中文字幕在线观看一区二区三区| 亚洲欧美电影在线观看| 亚洲欧美综合一区| 91久久精品一区二区二区| 色综合中文字幕国产| 在线码字幕一区| 色欧美片视频在线观看在线视频| 在线观看日韩国产| 在线看一区二区| 91无套直看片红桃| 91免费观看国产| 国产中文一区二区| 欧美日韩大片一区二区三区| 日韩妆和欧美的一区二区| 午夜欧美性电影| 欧洲激情一区二区| 欧美一级夜夜爽| 久久久久久久网| 1000精品久久久久久久久| 一区二区三区四区亚洲| 日韩一区精品字幕| 激情欧美一区二区| 成人一二三区视频| 国产精品免费视频一区二区 | 日韩.欧美.亚洲| 一区二区三区中文字幕精品精品 | 粉嫩在线一区二区三区视频| 国产麻豆成人传媒免费观看| 国产69精品久久777的优势| 成人深夜在线观看| 成人午夜电影免费在线观看| 欧美欧美一区二区| 91久久人澡人人添人人爽欧美| 制服丝袜在线91| 国产亚洲欧美一级| 亚洲在线免费播放|