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

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:Oracle應用Linux開發C

1樓
wangxinxin 發表于:2010-11-23 11:05:05
隨著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
共2 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .03125 s, 2 queries.
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
亚洲一区二区三区四区在线观看| 国产精品理伦片| 中文字幕一区二区三区四区五区| 精品一区日韩成人| 欧美日韩国产不卡在线看| 国产欧美一区二区三区另类精品| 国产精品一区二区免费| 精品一区二区三区日本| 日韩精品资源| 欧美日韩五月天| 日韩精品一区二区三区四区视频| 精品毛片乱码1区2区3区| 国产色产综合色产在线视频| 日韩美女精品在线| 视频在线观看一区二区三区| 国产乱码精品一区二区三区五月婷 | 久精品国产欧美| 亚洲国产精品视频一区| 欧美日韩精品一区二区三区| 精品国产99国产精品| 国产精品成人网| 免费精品视频最新在线| 处破女av一区二区| 欧美国产综合视频| 欧美区在线观看| 中日韩av电影| 美女在线观看视频一区二区| 国产精品99久久久久久似苏梦涵 | 成人在线资源网址| 亚洲线精品一区二区三区| 悠悠色在线精品| 6080日韩午夜伦伦午夜伦| 亚洲蜜桃av| 久久久久欧美| 在线免费观看日韩欧美| 精品黑人一区二区三区久久| 中文字幕一区二区在线播放| 蜜臀av国产精品久久久久 | 极品少妇xxxx精品少妇偷拍| www.欧美色图| 亚洲精品中文字幕在线 | 亚洲视频导航| 精品国内片67194| 亚洲综合在线视频| 国产不卡在线视频| 亚洲成人自拍| 久久久亚洲精华液精华液精华液| 亚洲电影一区二区三区| 成人av电影在线网| 亚洲精品国产精品久久| 精品国产3级a| 美女一区二区三区在线观看| 国产日产精品一区二区三区四区| 欧美日韩亚洲综合在线 | 97se视频在线观看| 91九色02白丝porn| 中文字幕字幕中文在线中不卡视频| 另类小说视频一区二区| 久久大片网站| 久久久久99精品一区| 久草在线在线精品观看| 日韩欧美视频一区二区| 久久亚洲欧美国产精品乐播| 久久国产福利国产秒拍| 久久偷看各类wc女厕嘘嘘偷窃 | 不卡av在线免费观看| 亚洲三区在线观看| 国产精品全国免费观看高清| 精品在线一区二区三区| 欧美日韩精品久久久免费观看| 日本欧美一区二区三区| 日本亚洲三级在线| 91小宝寻花一区二区三区| 美洲天堂一区二卡三卡四卡视频 | 久久国产精品一区二区| 蜜桃传媒视频第一区入口在线看| 欧美成人伊人久久综合网| 日本网站在线观看一区二区三区| 久久久免费看| 国产午夜精品久久久久久免费视| 蜜臀久久久久久久| 综合国产精品久久久| 亚洲精品老司机| 国产免费一区| 中文字幕的久久| 91成人在线看| 26uuu精品一区二区三区四区在线| 欧美精品一区二区三区在线四季 | 国内一区二区视频| 亚洲一二区在线| 亚洲永久免费av| 欧美一区激情视频在线观看| 中文字幕一区二区不卡| 91精品国产高清久久久久久91裸体 | 成人综合日日夜夜| 欧美色手机在线观看| 日本v片在线高清不卡在线观看| 亚洲美女网站18| 三级一区在线视频先锋| 五月天国产一区| 午夜久久久久久久久| 亚洲午夜精品福利| 日本欧美一区二区三区| 欧美午夜精品久久久久久孕妇| 久久激情五月婷婷| 欧美高清dvd| 国产69精品一区二区亚洲孕妇 | 亚洲一区二区在线观看视频| 日本不卡久久| 午夜影院在线观看欧美| 日本久久电影网| 国产一区二区三区四区五区美女| 欧美酷刑日本凌虐凌虐| 国产不卡视频一区二区三区| 精品国产91久久久久久久妲己 | 精品视频资源站| 国产精品一二三区在线| 精品日产卡一卡二卡麻豆| av中文字幕在线不卡| 欧美激情一区二区在线| 精品高清视频| 午夜激情综合网| 欧美精品乱人伦久久久久久| 国产精品主播直播| 久久夜色精品国产噜噜av| 狠狠干一区二区| 亚洲国产综合人成综合网站| 欧亚洲嫩模精品一区三区| 国产盗摄视频一区二区三区| 久久精品视频免费观看| 欧美日韩亚洲在线| 老色鬼精品视频在线观看播放| 欧美xxxxx裸体时装秀| 国产女人水真多18毛片18精品 | 亚洲视频在线一区| 在线不卡视频一区二区| 国产成人aaa| 亚洲欧洲日产国码二区| 日本高清不卡视频| 91浏览器在线视频| 亚洲成av人片在线| 日韩你懂的电影在线观看| 国产一区二区自拍| 欧美不卡三区| 精品国产乱码久久久久久久| 99久re热视频这里只有精品6| 亚洲人成小说网站色在线 | 亚洲最新视频在线观看| 91久久精品一区二区二区| 91影视在线播放| 丝袜美腿亚洲色图| 2017欧美狠狠色| 亚洲一区二区三区加勒比| 高清在线不卡av| 一区二区三区 在线观看视频| 精品视频999| 久久一区二区精品| 国产成人av电影在线播放| 一区二区三区精密机械公司| 国产成人无遮挡在线视频| 中文字幕乱码久久午夜不卡| 国产亚洲一区二区三区在线播放| 人人超碰91尤物精品国产| 久久久久国产成人精品亚洲午夜| 日韩欧美一区二区视频在线播放| 国产精品99久久久久| 一区二区三区高清在线| 精品免费视频一区二区| 亚洲一区二区三区四区中文| 国产99午夜精品一区二区三区 | 久久精品久久99精品久久| 国产精品美女一区二区在线观看| 欧美日韩国产一区| 日韩高清国产精品| 97夜夜澡人人双人人人喊| 久久99久久99精品免视看婷婷| 中文字幕制服丝袜成人av| 欧美一区二区在线不卡| 中文字幕免费在线不卡| 久久综合一区| 99re6在线| 成人手机在线视频| 开心九九激情九九欧美日韩精美视频电影| 中文字幕亚洲区| 精品久久久久久久久久久久久久久久久| 伊人狠狠色丁香综合尤物| 韩国精品一区二区三区六区色诱| 成人黄色网址在线观看| 美女久久久精品| 日韩中文字幕91| 亚洲成人午夜影院| 亚洲免费av观看| 中文字幕在线一区免费| 国产欧美综合在线观看第十页| 3atv在线一区二区三区| 在线视频国产一区| 婷婷四月色综合| 欧美伦理一区二区| 九色视频成人porny| 国产精品久久久对白|