亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 數(shù)據(jù)庫(kù) > DB2 > 正文

用Cygwin模擬DB2的Unix/Linux開(kāi)發(fā)環(huán)境(2)

2024-09-06 23:58:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
執(zhí)行初始化了db2環(huán)境的cygwin  點(diǎn)擊桌面上的cygwin圖標(biāo),可以進(jìn)入cygwin模擬的linux..   現(xiàn)在,該環(huán)境不能執(zhí)行db2命令,因?yàn)闆](méi)有作db2cmd初始化環(huán)境。     為了能在該環(huán)境中使用db2,必須先運(yùn)行db2cmd然后在db2的命令行環(huán)境下進(jìn)入cygwin測(cè)試,是否能在cygwin環(huán)境下使用db2命令。ok,到目前為止,我們已經(jīng)擁有了一個(gè)和unix一樣的環(huán)境,并且能使用db2下一步我們來(lái)寫(xiě)第一個(gè)sqc程序. 編寫(xiě)sqc程序   編寫(xiě)一個(gè)簡(jiǎn)單程序測(cè)試,該程序主要完成,讀取系統(tǒng)時(shí)間,并打印。程序主要部分為:           if (connectdatabase(sdbname,susername,spasswd)<0)   /*連接數(shù)據(jù)庫(kù)*/      {             printf("連接數(shù)據(jù)庫(kù)失敗/n");             return -1;      }      printf("連接數(shù)據(jù)庫(kù)成功!/n");                                                        exec sql select char(current timestamp)               into :sdatetime               from (values 1) as a;              if dataerror       {              disconnectdb();              return -1;       }       printf("當(dāng)前時(shí)間%s/n",sdatetime);       disconnectdb(); (完整程序建附件)該程序在unix主機(jī)下能編譯執(zhí)行。前面說(shuō)過(guò),建立這個(gè)環(huán)境的主要意義在于方便代碼移植。所以,代碼本身不用作任何更改即可在cygwin環(huán)境下編譯。修改編譯參數(shù)       安裝過(guò)程中已經(jīng)說(shuō)明cygwin環(huán)境下,支持大部分unix/linux命令并且安裝了gcc的編譯器,windows平臺(tái)和unix平臺(tái)下的庫(kù)略有不同,gcc和我們?cè)趙indows下常用的vc編譯器參數(shù)也略有不同,下面簡(jiǎn)要說(shuō)明。1、  在unix環(huán)境中,分為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),它們的擴(kuò)展名分別是 .a 和 .so .2、  在windows中,靜態(tài)庫(kù)擴(kuò)展名為 .lib 動(dòng)態(tài)庫(kù)擴(kuò)展名為 .dll3、  unix下,sqc程序編譯時(shí)必須鏈接 libdb2.so庫(kù),也就是加上 -ldb2參數(shù)(忽略lib和擴(kuò)展名,這是unix下c編譯器特點(diǎn))4、  windows下,sqc程序必須鏈接db2api.lib靜態(tài)庫(kù)。雖然有上述不同,但是我們的修改卻非常少,本例中使用了以前我為編譯sqc寫(xiě)的makefile模板。在makefile中真正需要修改的只有一行將libs= -l$(db2path)/lib -l$(db2path)/lib/db2修改為libs= -l $(db2path)/lib $(db2path)/lib/db2api.lib當(dāng)然,你還需要更具環(huán)境的不同,修改makefile的其他部分,比如db2path的值啊,這些就是在不同的主機(jī)上也需要修改的,并不是windows和unix的區(qū)別,不在本文的討論之列。 運(yùn)行測(cè)試程序cygwin使用windows文件系統(tǒng),進(jìn)入cygwin環(huán)境后 系統(tǒng)的根目錄/其實(shí)就是你的cygwin安裝目錄。用戶目錄通常在/home/user,(user是你windows的用戶名)  比如在windows環(huán)境中我的cygwin安裝在d:/cygwin 我的用戶目錄是 d:/cygwin/home/rocfu,,如果你在cygwin中使用pwd命令察看當(dāng)前路徑,會(huì)顯示/home/roc. 在用戶目錄下新建db2test子目錄,附件附帶文件 makefile  test.sqc,將這三個(gè)文件復(fù)制到db2test目錄.修改 test.sqc中的下面代碼       strcpy(susername,"db2admin");      strcpy(spasswd,"db2admin");      strcpy(sdbname,"dwctrldb");為你自己的服務(wù)器連接(為簡(jiǎn)化測(cè)試程序,這里并沒(méi)有從配置文件中讀取連接信息)執(zhí)行命令 make all你會(huì)發(fā)現(xiàn)編譯的結(jié)果竟然是一個(gè)exe文件,對(duì)了,這是在windows下編譯的程序,當(dāng)然是一個(gè)exe文件了。ok 執(zhí)行該程序,運(yùn)行結(jié)果如下圖總結(jié)       完成上述步驟之后,我們有了一個(gè)仿真的unix環(huán)境,能通過(guò)makefile中的小小改動(dòng),將源代碼在各種平臺(tái)上編譯,當(dāng)你不能連上主機(jī)工作時(shí),完全可以用這個(gè)小巧的環(huán)境暫時(shí)代用。這個(gè)環(huán)境具有unix/linux高級(jí)特性,對(duì)于信號(hào)、管道、多進(jìn)程、守護(hù)進(jìn)程完全支持。    還有更重要的,如果希望這個(gè)程序在windows下脫離cygwin環(huán)境運(yùn)行,只要把cygwin1.dll復(fù)制到windows的system32目錄下即可,這樣,你得程序在一套源碼的情況下,支持兩個(gè)環(huán)境,何樂(lè)而不為。事實(shí)上,很多從linux移植到windows的程序就是這么干的。 附件makefile.suffixes: .sqc .c .o gcc=gcccc=gcc  embprep=embprep  ccflags=-g -mno-cygwin   cflags= $(extra_cflags) -i$(db2path)/include -mno-cygwin db2path=/cygdrive/d/db2/sqllib#libs= -l$(db2path)/lib -l$(db2path)/lib/db2 libs= -l $(db2path)/lib $(db2path)/lib/db2api.lib uid=db2adminpwd=db2admindb=dwctrldb billhome=.billbin=.billsrc=$(billhome)billobj=$(billhome)billlib=../lib include=-i. -i$(billhome)/src -i$(billlib) /       -i$(db2path)/include /       -i/usr/lib -i/usr/local/include /       -i/usr/include               target1 = $(billbin)/test  all:$(target1) .sqc.o:       db2 connect to $(db) user $(uid) using $(pwd);/       db2 prep $*.sqc bindfile;/       db2 bind $*.bnd;/       db2 connect reset;/       db2 terminate;/       $(cc) $(include) -o $*.o -c $(ccflags) $(cflags) $(defs)  $*.c ; .c.o:       $(cc) $ (include) -o $*.o -c $(ccflags) $(cflags) $(libs) $(defs) $*.c --def tandard.def        pick_objs1= $(billsrc)/test.o $(billbin)/test:    $(comm_objs) $(pick_objs1)              $(cc) $(cflags) -o $(target1)  $(pick_objs1) $(comm_objs) $(oracle_lib)$(linkflag) $(libs)   clean:       rm -f *.o $(target1) test.c test.o test.bnd test.sqc/**********************************************************************************                 文件名:test.sqc    創(chuàng)建人: roc.fu   日期  2004-03-07  版 本:v1.0         功 能:讀取系統(tǒng)當(dāng)前時(shí)間                                             描 述:**********************************************************************************/#include <stdio.h>#include <sql.h>#include <sqlenv.h>#include <sqlda.h>#include <sqlca.h>#include <sqladef.h>#include <sqlenv.h> struct sqlca sqlca;char gusername[20];char gpassword[20];char gservername[20];char gtpassword[20]; #ifndef dataerror#define dataerror   (sqlca.sqlcode<0 )#endif   /************************************************************************************     功能 :連接數(shù)據(jù)庫(kù)   *        返回值 :0 正常連接  -1 連接失敗*        參數(shù): sdbalias 數(shù)據(jù)庫(kù)名*              suser    用戶名*              spasswd  密碼***********************************************************************************/int connectdatabase (char *sdbalias,char *suser,char *spasswd){    int        rc = 0;    char       smsg[1024];         exec sql begin declare section ;        char db[15] ;        char userid[15] ;         char passwd[15] ;     exec sql end declare section;     memset(smsg,0,1024);    printf("1/n");    strcpy( db, sdbalias) ;    strcpy( userid, suser) ;        strcpy( passwd, spasswd) ;        if ( strlen(userid) == 0)    {        printf("2/n");     exec sql connect to :db;     }    else     {              printf("用戶名:%s/n",userid);           printf("密碼:%s/n",passwd);           printf("密碼:%s/n",db);                      exec sql connect to :db user :userid using :passwd;         printf("4/n");     }        return 0; } /************************************************************************************                   斷開(kāi)數(shù)據(jù)庫(kù)連接************************************************************************************/void disconnectdb(){       exec sql connect reset;}  int main(int argc, char *argv[]) {      int iret;                exec sql begin declare section;            char susername[100];          char spasswd[100];          char sdbname[100];          char sdatetime[100];        exec sql end declare section;              printf("start read config.../n");       strcpy(susername,"db2admin");      strcpy(spasswd,"db2admin");      strcpy(sdbname,"dwctrldb");              if (connectdatabase(sdbname,susername,spasswd)<0)   /*連接數(shù)據(jù)庫(kù)*/      {             printf("連接數(shù)據(jù)庫(kù)失敗/n");             return -1;      }      printf("連接數(shù)據(jù)庫(kù)成功!/n");                                                        exec sql select char(current timestamp)               into :sdatetime               from (values 1) as a;              if dataerror       {              disconnectdb();              return -1;       }       printf("當(dāng)前時(shí)間%s/n",sdatetime);       disconnectdb();       printf("完成/n");       return 0;} 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品成人免费精品自在线观看| 欧美亚洲综合久久| 色偷偷福利视频| 日韩一级大片在线| 欧美日日夜夜| 亚洲黄色有码视频| 九色在线视频观看| 日本黄大片一区二区三区| 户外极限露出调教在线视频| 国产免费一区二区三区最新不卡| 第一社区sis001原创亚洲| 制服丨自拍丨欧美丨动漫丨| 国产黑人绿帽在线第一区| 国产wwwwxxxx| 裸体一区二区| 91国产一区在线| 亚洲国产成人久久| 国产区精品在线| 一区二区三区高清视频在线观看| 婷婷久久综合九色国产成人| 国产成人精品一区二区三区四区| 九九这里只有精品视频| 擼擼色在线看观看免费| 猛男gaygay欧美视频| 五月天激情四射| 粉嫩av一区二区三区粉嫩| 国产欧美日韩在线观看视频| 欧美日韩三级电影在线| 99精品视频在线观看播放| 91综合久久一区二区| 欧美激情精品久久久久久免费印度| 国产精品久久麻豆| 天堂视频中文在线| 欧美风狂大伦交xxxx| 亚洲精品一区二区三区在线| 性欧美video高清bbw| 香蕉视频网页版| 国产一区深夜福利| 亚洲wwwav| 在线观看日韩精品视频| 欧美偷窥清纯综合图区| 影音成人av| 久做在线视频免费观看| 九九久久久久久久久激情| 极品人妻一区二区| 色偷偷噜噜噜亚洲男人的天堂| 亚洲精品综合| 欧美日韩成人激情| 欧美视频在线视频精品| 欧美国产日韩xxxxx| 亚洲黄色有码视频| 日本韩国在线视频| 欧美日韩在线一| 国产调教打屁股xxxx网站| 99精品欧美一区二区蜜桃免费| 亚洲精品免费在线播放| 日韩中文字幕在线视频| 国产99久久久久久免费看| 精品久久久久久久一区二区蜜臀| www.性欧美| 国产日韩欧美黄色| 九色91蝌蚪| 久久黄色精品视频| 欧美激情一区二区三区成人| 欧美一级在线播放| 国产精品30p| 久久成人高清| 手机av免费看| 久久黄色影院| 欧美电影一区| 亚洲一级中文字幕| 性欧美videos粗暴| 国产精品久久久久久久天堂第1集| 国产一区二区伦理片| 中国在线观看免费国语版电影| 久本草在线中文字幕亚洲| 欧美精品一区二区三区高清aⅴ| 奇米888一区二区三区| 亚洲一区二区欧美激情| 亚洲日本视频| 福利影院在线看| 国产欧美一区二区三区小说| 国产欧美日韩免费| 美女与牲口做爰视频在线观看| 亚洲欧美天堂| 亚洲激情五月| 性xxxfreexxxx性欧美| 91色在线porny| 国语对白一区二区| 亚洲欧美综合在线精品| 最近中文字幕mv2018在线高清| 精品在线91| 亚洲色图视频网站| 国产午夜麻豆影院在线观看| 国产精品黄色| 黄网视频在线观看| 亚洲欧美日本伦理| 日本网站在线观看一区二区三区| 一区精品在线观看| 香蕉成人在线| 欧美日韩视频免费观看| 国产精品扒开腿做爽爽爽男男| 亚洲资源一区| 午夜在线观看一区| 欧美国产小视频| 亚洲一区在线| 国产黄色美女视频| 深爱激情久久| 加勒比日本影视| 日韩电影在线观看中文字幕| 外卖gayxxxxgay1| jizzjizzjizzjizz日本| 欧美一区二区三区精品电影| 国产成人亚洲综合a∨婷婷| 日韩国产在线观看一区| 精品少妇一区二区三区在线播放| 亚洲 欧美 日韩 综合| 久久久女人电视剧免费播放下载| 中文字幕一二三区在线观看| 嗯用力啊快一点好舒服小柔久久| 亚洲图片在线播放| 日韩www视频| 久久青青草视频| 在线a免费看| 精品1区2区在线观看| 国产乱一区二区| 麻豆传媒视频在线观看| 黄色片网站在线播放| 亚洲最大视频网| 亚洲欧美在线免费| 成人av网站在线| 不卡av中文字幕| 国产精品chinese在线观看| 亚洲免费999| 国产成人精品免费看视频| 黑人性受xxxx黑人xyx性爽| 国产91久久久久蜜臀青青天草二| 国产乱视频在线观看| av成人app永久免费| 国产精品1区2区3区在线观看| 羞羞视频立即看| 中文字幕精品一区二区精品绿巨人| 老牛精品亚洲成av人片| 一级黄色a毛片| jvid福利写真一区二区三区| 网站在线你懂的| 亚洲精品mv在线观看| 综合操久久久| 毛片视频免费| 成人av高清在线| 亚洲精品av在线播放| 中文字幕久热在线精品| 久久精品亚洲94久久精品| 欧美日韩精品免费观看视频完整| 一区二区三区色| 亚洲欧美精品aaaaaa片| 中文字幕亚洲欧美日韩| 国产成人精品a视频一区www| 欧美日本一区二区视频在线观看| 国产女主播一区二区三区| 国产主播福利| 97se亚洲综合| 亚洲一区第一页| 日韩精品免费视频一区二区三区| 在线播放一区| 五月天国产在线| 91骚色在线| 欧美做受高潮电影o| 色999五月色| 亚洲一区二区欧美| 亚洲v欧美v另类v综合v日韩v| 蝌蚪91视频| 国产高清免费在线观看| 亚洲最大成人综合网| 欧美 日韩 国产 一区二区三区| aa日韩免费精品视频一| 中文字幕网av| 久久久久久久久久免费视频| 毛片毛片毛片毛片毛| 久久婷婷久久一区二区三区| 不卡大黄网站免费看| 亚洲桃色在线一区| 先锋影音在线播放av| 激情aⅴ欧美一区二区欲海潮| 国产精品毛片高清在线完整版| 能在线观看的av网站| 91成人在线观看喷潮| 亚洲福利影视| 一区二区三区视频免费看| 亚洲激情电影中文字幕| 午夜视频在线观看一区二区| 久久久久亚洲av成人无码电影| 夜夜未满十八勿进的爽爽影视| 色哟哟视频在线| 日韩中文字幕久久| 国产精品视频自拍| 天天操天天干天天干| 天堂av免费在线| 亚洲精品在线播放视频| www.四虎影视.com| 欧美一级艳片视频免费观看| 日本人视频jizz页码69| 成人v精品蜜桃久久一区| 天天爽天天爽天天爽| 少妇一级淫片免费放播放| 日韩一区二区三区高清免费看看| 日本高清成人免费播放| 国产精品xxx电影| 日本不卡一区二区| 成人全视频免费观看在线看| 国产免费叼嘿网站免费| av大全在线| www久久久久| 97碰碰碰免费公开在线视频| 高清色视频在线观看| 欧美午夜美女看片| 99久久综合国产精品| 国产成一区二区| 国产成人香蕉在线视频fuz| 影音先锋2020资源| 成本人h片动漫网站在线观看| 国内精品久久久久伊人av| jizzjizz在线观看| 精品成人在线视频| 影音先锋中文字幕在线观看| 国产精品久久久久久免费播放| 91热门视频在线观看| 黄片毛片在线看| 欧美性片在线观看| www.欧美精品一二三区| 中文字幕免费高| 久久成人免费网站| 国产精品久99| 黄色美女一级片| 国产综合色产在线精品| 欧美久久久久| 免费人成精品欧美精品| 亚洲高清在线不卡| 国产日韩欧美一区二区三区四区| 国产亚洲欧美另类一区二区三区| 日批视频免费在线观看| 无码无套少妇毛多18pxxxx| 日本中文字幕在线| 国产成人自拍网| 久久悠悠精品综合网| 国产欧美日韩麻豆91| 娇小11一12╳yⅹ╳毛片| 中文字幕一区二区三区四区五区人| 欧美三级三级三级爽爽爽| 日韩小视频在线播放| 国产精品亚洲美女av网站| 亚洲天堂开心观看| 少妇av一区二区三区无码| 免费在线观看一级毛片| 精品女人久久久| 日韩视频中文字幕| 成人做爰视频www| 欧美精品网站| www.91在线播放| 一边摸一边做爽的视频17国产| 91亚洲国产成人久久精品| 狠狠噜天天噜日日噜| 国产精品一区二区三区网站| 国产免费黄色录像| 成人黄色免费看| 四季av一区二区三区免费观看| 色资源二区在线视频| 一日本道久久久精品国产| 国产美女精品视频国产| 亚洲区综合中文字幕日日| 欧美特大特白屁股xxxx| 国产成人精品在线视频| 欧美福利在线观看| 五月综合激情日本mⅴ| 怡红院av亚洲一区二区三区h| 91精品国产综合久久香蕉最新版| 亚洲自拍的二区三区| 久久国产精品毛片| 日韩免费一二三区| 又黄又爽毛片免费观看| 欧美少妇xxx| 波多野结衣av在线观看| 亚洲成aⅴ人片久久青草影院| 91精品免费视频| 欧美精选一区二区三区| 国内精品久久久久久| 一区二区在线视频观看| 久久精品网站免费观看| 日韩欧美国产高清| 天天插天天干| 亚洲韩国一区二区三区| 做爰视频毛片视频| 日本精品久久久久中文字幕| 国产女人水真多18毛片18精品视频| 青梅竹马是消防员在线| 成人精品免费视频| 中文字幕亚洲综合久久筱田步美| 香蕉久久久久久久av网站| 三上悠亚一区| 97人人精品| 亚洲欧美日韩国产| 国产乱对白刺激视频不卡| 蜜桃国内精品久久久久软件9| 一级在线观看视频| 久久中文字幕一区二区三区| 欧美在线观看在线观看| 国产日韩av高清| www.xxx国产| 免费一级a毛片夜夜看| 日本不卡免费高清视频| 日韩欧美亚洲另类| 亚洲爱情岛论坛永久| 在线观看免费不卡av| 欧美人与禽猛交乱配视频| 欧美日韩精品在线播放| 在线视频你懂| 欧美极品一区二区三区| 三级精品视频久久久久| 免费成年人高清视频| 黑人久久a级毛片免费观看| 99免费观看视频| 欧美精品日韩三级| 亚洲三级网页| 日本中文字幕在线不卡| 国产乱码精品一区二三赶尸艳谈| 久久亚洲国产精品一区二区| 天堂va蜜桃一区二区三区| 日本在线观看一区二区|