用BCB开发多层数据库应用程序
2008-03-08 12:52:39 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝洨纾界€广儱鎷戦煬顒傗偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備浇顕栭崹搴ㄥ礃閿濆棗鐦遍梻鍌欒兌椤㈠﹤鈻嶉弴銏犵闁搞儺鍓欓悘鎶芥煛閸愩劎澧曠紒鈧崘鈹夸簻闊洤娴烽ˇ锕€霉濠婂牏鐣洪柡灞诲妼閳规垿宕卞▎蹇撴瘓缂傚倷闄嶉崝搴e垝椤栫偛桅闁告洦鍨扮粻鎶芥倵閿濆簼绨藉ù鐘荤畺濮婃椽妫冨☉娆愭倷闁诲孩鐭崡鎶芥偘椤曗偓瀹曞爼顢楁径瀣珫婵犳鍣徊鍓р偓绗涘洤绠查柛銉墮閽冪喖鏌i弬鎸庢喐闁荤喎缍婇弻娑⑩€﹂幋婵囩亪濡炪値鍓欓悧鍡涒€旈崘顔嘉ч幖绮光偓鑼嚬缂傚倷绶¢崰妤呭箰閹间焦鍋╅柣鎴f绾偓闂佺粯鍔曠粔闈浳涢崘顔兼槬闁逞屽墯閵囧嫰骞掗幋婵愪紑閻庤鎸风粈渚€鍩為幋锔藉亹闁圭粯甯╂导鈧紓浣瑰劤瑜扮偟鍒掑▎鎾宠摕婵炴垶鐭▽顏堟煙鐟欏嫬濮囨い銉︾箞濮婃椽鏌呴悙鑼跺濠⒀傚嵆閺岀喖鎼归锝呯3闂佹寧绻勯崑娑㈠煘閹寸姭鍋撻敐搴樺亾椤撴稒娅婇柡灞界У濞碱亪骞忕仦钘夊腐闂備焦鐪归崐鏇㈠箠閹邦喗顫曢柟鎯х摠婵挳鏌涢幘鏉戠祷闁告挸宕—鍐Χ閸℃浠搁梺鑽ゅ暱閺呮盯鎮鹃悜钘壩ㄧ憸澶愬磻閹剧粯鏅查幖绮瑰墲閻忓秹姊虹紒妯诲鞍婵炲弶锕㈡俊鐢稿礋椤栨氨鐤€闂傚倸鐗婄粙鎰姳閼测晝纾藉ù锝堟閻撴劖鎱ㄥΟ绋垮婵″弶鍔欓獮妯兼嫚閼碱剦妲伴梻浣稿暱閹碱偊宕愭繝姣稿洭寮舵惔鎾存杸濡炪倖姊婚妴瀣啅閵夛负浜滄い鎾跺仜濡插鏌i敐鍥у幋妤犵偞甯¢獮瀣籍閳ь剟鎮楁繝姘拺閻熸瑥瀚崕妤呮煕濡 鍋撻悢鎻掑緧婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繑銇勯幘鍗炵仼缁炬儳顭烽弻鐔煎礈瑜忕敮娑㈡煃闁垮鐏﹂柕鍥у楠炴帡宕卞鎯ь棜缂傚倸鍊风粈渚€藝闁秴鏋佸┑鐘虫皑瀹撲線鏌涢埄鍐姇闁稿﹦鍏橀弻娑樷攽閸℃浼€濡炪倖姊归崝鏇㈠煘閹达附鍊婚柛銉㈡櫇鏍¢梻浣告啞閹稿鎮烽敂鐣屸攳濠电姴娲﹂崵鍐煃閸濆嫬鏆熼柨娑欑矒濮婇缚銇愰幒鎴滃枈闂佸憡鐟ユ鎼佸煝閹炬枼鍫柛顐ゅ枔閸樻悂鏌h箛鏇炰户缁绢厼鐖煎畷鎴﹀箻鐠囪尙鐤€婵炶揪绲介幉锟犲磹椤栫偞鈷戠痪顓炴噹娴滃綊鎮跺☉鏍у姦闁糕斁鍋撳銈嗗笒閸燁偊鎯冨ú顏呯厸濞达絽婀辨晶顏堟煃鐟欏嫬鐏撮柟顔界懇瀵爼骞嬮悩杈敇闂傚倷绀佸﹢杈ㄧ仚闂佺濮ょ划搴ㄥ礆閹烘绫嶉柛顐ゅ枎娴犺櫣绱撴担鍓插創妞ゆ洘濞婇弫鍐磼濞戞艾骞堥梻浣告惈濞层垽宕濆畝鍕€堕柣妯肩帛閻撴洟鏌熼懜顒€濡煎ù婊勫劤閳规垿鏁嶉崟顐℃澀闂佺ǹ锕ラ悧鐘茬暦濠靛鏅濋柍褜鍓熼垾锕傚锤濡も偓閻掑灚銇勯幒宥堝厡缂佺姴澧介埀顒€鍘滈崑鎾斥攽閻樿京绐旈柛瀣殔閳规垿顢欑涵鐑界反濠电偛鎷戠徊鍨i幇鏉跨闁瑰啿纾崰鎾诲箯閻樼粯鍤戦柤绋跨仛濮f劙姊婚崒姘偓鐑芥嚄閼哥數浠氭繝鐢靛仜椤曨參宕楀Ο渚殨妞ゆ劑鍊栫€氭氨鈧懓澹婇崰鏍р枔閵婏妇绡€闁汇垽娼ф牎缂佺偓婢樼粔鐟邦嚕閺屻儱绠甸柟鐑樼箘閸炵敻鏌i悩鐑橆仩閻忓繈鍔岄蹇涘Ψ瑜夐崑鎾舵喆閸曨剙纰嶅┑鈽嗗亝缁诲倿锝炶箛娑欐優闁革富鍘鹃敍婊冣攽閳藉棗鐏犻柟纰卞亰閿濈偛顓奸崶鈺冿紳婵炶揪缍侀ˉ鎾诲礉瀹ュ鐓欑紒瀣仢閺嗛亶鏌i敐鍥у幋妤犵偛顑夐弫鍐焵椤掑倻涓嶅┑鐘崇閸嬶綁鏌涢妷鎴濆暟妤犲洭鎮楃憴鍕碍缂佸鎸抽垾鏃堝礃椤斿槈褔鏌涢埄鍏狀亪妫勫鍥╃=濞达絽澹婇崕鎰版煕閵娿儱顣崇紒顔碱儏椤撳吋寰勭€n亖鍋撻柨瀣ㄤ簻闁瑰搫绉堕ˇ锔锯偓娈垮枛閻忔繈鍩為幋锕€鐓¢柛鈩冾殘娴狀垶姊洪崨濠庣劶闁告洦鍙庡ú鍛婁繆閵堝繒鍒伴柛鐕佸灦瀹曟劙宕归锝呭伎濠碘槅鍨抽崢褎绂嶆ィ鍐╁€垫慨妯煎亾鐎氾拷

核心提示:继Client/Server结构在MRP、MIS等数据库应用系统红火之后,多层结构(Multi_Tier)开始登场,用BCB开发多层数据库应用程序,许多厂商提供了各种中间件,本文描述了用Borland C++ Builder(以下简称BCB)所提供的Multi_Tier构件来开发多层数据库应用程序的方法, 本文仅仅描述
继Client/Server结构在MRP、MIS等数据库应用系统红火之后,多层结构(Multi_Tier)开始登场,许多厂商提供了各种中间件。本文描述了用Borland C++ Builder(以下简称BCB)所提供的Multi_Tier构件来开发多层数据库应用程序的方法。
一、 Multi_Tier结构的实现
C++ Builder提出的Multi_Tier是把以前的Client/Server前端应用程序里的BDE、SQL Link和DataModule拿到另一台NT服务器上,也叫应用程序服务器,前端机只留下应用程序及DBClient.DLL,而移到应用程序服务器上的DataModule则变成一个COM程序,此COM程序是通过BDE 、SQL Link传输SQL到后端数据库,并从后端数据库存取数据,然后由TdatasetPRovider组件把读取的Dataset压缩并切割成一段一段的数据包(data packet)通过DCOM的机制传给前端机,前端机上的DBClient.DLL会把接收到的数据包再还原成DataSet传给程序中的TclientDataSet组件,Data Control组件就可以TclientDataSet为数据源对之进行操作,而COM程序会把修改后的DataSet正确地写回后端数据库。
与Client/Server结构相比,Multi_Tier结构具有很多优点,主要表现在:
1. 大幅度地减少数据库服务器的负担。因为多了一层应用程序服务器,接管了众多客户机的Connection处理,数据库服务器只需处理应用服务器的Connection,这样就不会因为用户(Client)数的增加而影响系统的运行性能。
2. 前端机应用程序安装方便。Multi_Tier结构中,把以前的Client/Server前端应用程序内的BDE、SQL Link和DataModule拿到数量很少的应用服务器上,前端机只负责Use Interface的处理,只需要一个单纯的EXE文件(包括DBClient.DLL),可以在应用服务器上开发前端应用程序,通过网络复制到各个前端机上。
二、 环境配置
1.后端数据库服务器配置
包括数据库系统及数据库提供的中间件。本文具体环境为:
VMS操作系统上安装Oracle7.3。
2.应用程序服务器配置
(1)在PC Server上安装Windows NT ,使它成为一台Microsoft NT Server;
(2)保证网络的畅通,即网络层的通讯协议的畅通;
(3)安装数据库系统提供的中间件,本文是Oracle提供的Oracle for NT 的SQLNET产品,执行SQLNET Easy Configuration工具,设定Oracle的TNS连接参数,加入一个数据库别名,连上后端的Oracle数据库服务器;
(4)安装BDE Administrator,设定BDE的参数内容,具体步骤如下:
Databases中先新建一个别名,本文是Oracle2,其中的参数改为:
server name 数据库服务器的别名
net protocol tns
user name oracle的用户名/口令
(5)安装C++Builder 5软件,用于开发应用服务器和客户端的程序。
3.前端客户机配置
(1)安装操作系统Windows 95/98,本文是Windows 98,保证各前端机与应用服务器在TCP/ip层上连通;
(2)从NT服务器的\Winnt\System32目录下复制DBClient.DLL到本机的\Windows\System;
(3)如操作系统为Windows 95,必须安装DCOM程序,因为Windows 98 与Windows NT Workstation已经内含DCOM程序,不需另外安装;
(4)在应用服务器上开发应用程序,通过网络复制。
三、实现步骤
下面是一个对材料库存表进行维护的Multi_Tier结构数据库治理程序,用户可以在前端的Windows 98机上通过中间的NT应用服务器对Alpha机上的Oracle数据库上的库存表进行维护。
1.应用服务器上程序的开发
(1)打开一个新工程,然后点主功能选单NEW中的RemoteDataModule,并填入Coclass Name项,这里是KCBB。
(2)在RemoteDataModule上放置DATABASE,TABLE,DataSetProvider三个组件,并分别设置属性如下:
database1 aliasname oracle2
databasename test
connected true
table1 databasename test
tablename kcb
active true
datasetprovider dataset table10
eXPo0rted true
前六行目的是连上后端数据库Oracle2的表KCB,后两行目的是DataSetProvider组件将表KCB作为DATASET传给前端程序。
(3)在Forms1加一个Lable组件,上面写上“服务器应用程序已被启动”,这样运行时屏幕上就会出现这句话,说明程序已被调用。
(4)为了前端程序能连上此COM程序,必须把它注册到服务器的注册表内,可通过运行Regedit.EXE,根据Coclass Name寻找注册名来确认注册是否成功。
2.前端程序的开发
(1)打开一个新工程,拖拉一个DCOMConnection组件、一个ClientDataSet组件、DataSource组件、Dbgrid组件到FORM1上。
DCOMConnection1设置如下属性:
computername 应用服务器的机器名
servername project1.kcbb
ClientDataSet1设置如下属性:
remoteserver dcomconnection1
provider table1
active true
DataSource的DATASET设置为ClientDataSet1;
Dbgrid的DataSource设置为DataSource1。
(2)拖7个Button来当作功能按钮 ,分别设为新增、修改、删除、取消、写入、重新读取、返回 。由于BCB提供了ActionList组件,其中包括了StandardAction,可以利用这些标准的Action来编写Dataset的编辑功能, 只要把Button的属性Action依照每Button所赋予的功能指向对应的ActionList项即可。
最后,将调试好的前端程序复制到所有的前端机中,运行调试,一个Multi_Tier结构的数据库应用程序就可投入使用了。
本文仅仅描述了开发Multi_Tier结构的数据库应用程序的一种基本方法,还需要我们在实际应用中进一步完善,如怎样提高数据在其上的传输效率及数据传输中的出错处理等都需要进一步地编程实现。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››开发者或想使用的10个Android2.2新特性
更多精彩
赞助商链接