¡@¡@¥Ñ©ó±Ä¥Î 3-Tier ªº¬[ºc¡A©Ò¥H«eºÝ´N¤£¤¹³\»P¸ê®Æ®w¦³ª½±µ±µÄ²¡A¤×¨ä¬O¦bªí³æ³]p¤W¡A¤£¯à¨Ï¥Î Table »P SQL ³o¨âÓ¤¸¥ó¥h³]p¡C¦]¬°³o¨âÓ¤¸¥ó³£·|¨Ï¥Î¨ì
B.D.E¡A·|»P Database ¦³ª½±µªº³s±µÃö«Y¡A³o¬O¹H¤Ï 3-Tier ªº³]pì«h¡C¦]¦¹¦b¤T¼h¬[ºc¤W³]pªí³æ©M³øªí®É°£¤F»Ýn±q
A/P Server ¤W¨ú±o¸ê®Æ¥~¡AÁÙn¦Ò¼{¹ï¸ê®Æªí§@·s¼W§ó§ï§R°£ªº°Ê§@³B²z¡C¨º»ò»P¶Ç²Îªº³æ¼h³]p¬Û¤ñ¤S¸Ó¦p¦ó¥h°µ©O¡H½Ð¬Ý VD
´£¨Ñªº¥H¤U´XÓ·s¤¸¥ó¡G
1¡BClientDataSet («eºÝ¸ê®Æªí)
¡@¡@¬°¤F¯à¥R¤À³e¹ý 3-Tier ºë¯«¡A§Ú̦b«eºÝ¤S¦h²K¥[¤F¨âÓ¸ê®Æ¤¸¥ó¡C¤@Ó¬° Client Dataset¡A¥t¤@Ó¬° Cache
DataSet¡C¦]¬°ì¨Óªº Table »P SQL ³£¬O¥Ñ Client ºÝ¤U SQL ©Î¥H Table ¤¸¥ó±N¸ê®Æ¶Ç¿é¨ì Client
¨ÓºûÅ@¡A©Ò¥HClient ¥²¶·n¦w¸Ë BDE ¤~¯à¹B§@¡C¦Ó Client Dataset «h·|¥D°Ê¨ì«ü©wªº A/P Server
¤W§ì¨ú¸ê®Æ¡A¨t²Î·|¥H Provider Name 1. ¥h§ì¨ú A/P Server ªº¨º¤@Óªº¸ê®Æ®w¡]Data Module¡^¡A¤]´N¬O»¡¡A¤£¬O¥Ñ
Client ¨Ó¤U¹F SQL »yªk§ì¸ê®Æ¤U¨Ó¡A¦Ó¬O¥Ñ A/P Server ¨Ó¤U¹F SQL ¦V¸ê®Æ®w¨ú±o¸ê®Æ¦A¶Ç°e¨ì Client
¤W¡A¤~¯à§¹¦¨¸ê®Æ¦s¨úªºªA°È¡C(·íµM A/P Server ºÝ¤W¥²¶·n¦³¬Û¹ïªº¸ê®Æ®w Data Module )
¡@¡@¸ÑÄÀ»¡©ú»¡1.¡GProvider Name ¤SºÙ¸ê®Æ¨ÑÀ³ªÌ¡A¬O Client Dataset ªº«nÄݩʤ§¤@¡CA/P Server
¤W¥i¥H¸ü¤J¦hÓ¥H Delphi ³]pªº BPL¡A¨C¤@Ó BPL ³£¥i¯à¦³¦hÓ Provider¡A¤@Ó Provider ¤@¯ë¬O¥Nªí¤@Ó
A/P Server ºÝ¤Wªº SQuery¡A¥¦¤@Ãä³s±µ¨ì Database Server ¤W¡A¤@Ãä«hn·Ç³ÆÅý User ³s±µ¡A¥H´£¨Ñ
Client ªº¸ê®Æ¦s¨úªA°È¡C¦pªG¬ODelphi ªº BPL¡A«h Provider ªº®æ¦¡¬° BPLName.QueryName¡A«eªÌ«ü
BPLName¡A«áªÌ¬° Server ºÝ QueryName¡F¤Ï¤§¦p³s±µ VD3.0 ªº¸ê®Æ¤¸¥óªÌ¡AProvider ªº®æ¦¡¬°¡GSVD30.
ServerForm. SQueryName¡A«eªÌ©T©w¬° SVD30¡]¦]¬° VD3.0 ¥H¤@Ó SVD30.BPL ¨Ó°ÊºA²£¥ÍµêÀÀ¦hÓ
BPL¡^¡A¤¤¶¡¬° Server ªº Form Name¡A«ü VD3.0 Server ºÝ VDS ©Ò¦s¤Uªº Server Form¡C«áªÌ¬°
SQuery Name¡C
2. ServerForm (¦øªA¾¹ªí³æ)
¡@¡@VD2.0 ªº VDS ¤@¯ë¥u¦³ Client ºÝªº VDS¡A¦ý VD30 ¤¤ªº VDS ¦³¨âºØ¡C¤@ºØ»Pì VD2.0
ªº VDS ¤@¼Ë³£¬OClient ºÝªº VDS¡A¬O¸m©ó Client ºÝ¤Wªº¡CVD3.0 ¥Î³oÓ VDS ¨Ó±Ò°Ê Client
ºÝªº Form ©Î Report¡F¥t¤@ºØ VDS ¬O¦s¦bEEP A/P Server ºÝªº VDS¡A¬O¥Ñ EEP A/P Server
ªº VD30.BPL ¨Ó¶}±Ò¡A¤]´N¬O»¡ VD30.BPL ·|¦b VD30_Server ªº¥Ø¿ý¤W§ä¤@Ó¦W¦r¬° Default.VDS¡]A/P
Server ºÝªº¹w³] VDS¡^¡A¦¹ Server ªº VDS ·|¦s¥t¤@ºØ From¡A§Y¬O©Ò¿×ªºServer Form¡C³oºØ
Server Form¥i¥H¦b VD3.0ªº«á¥x Designner ¤¤·s¼W»P³]p¡C·íµM¡A¬°¤F²¤Æ³]pµ{¦¡¡A§A¥i¥H±N VD3.0
ªº Client »P Server ³£¦X¨Ö¦b¦P¤@Ó VDS ¤¤¡A¤£¥²¤À Client »P Server¡An¤Àn¦X¹ï VD3.0
¨Ó»¡³£¬O¥i¥H¦Û¥Ñ³]©wªº¡A¦pªG¦X¦b¤@°_ªº¸Ü¡A¨º»P VD2.0 ¤@¼Ë¡C
¡@¡@3.0 ª©ªº Client ºÝ Form ¦³¤ºØ¡G¤@¬° Form / ¤G¬° Report / ¤T¬° Global Form
/ ¥|¬° Template Form¡A¤´N¬OVD30 ·s¼Wªº Server Form¡C¥¦¬O¥Î¨Ó³]p»P Client Dataset
³s±µ¥Îªº Data Module¡C¤]´N¬O»¡¡AClient ¤£¯àª½±µ¨Ï¥Î Table »PQuery¡A¥u¯à¨Ï¥Î Client Dataset
³z¹L Server Form ªº Data Module ¨Ó¦s¨ú¸ê®Æ¡C¨º»ò¦p¦ó³]p¤@Ó Data Modual ©O¡A¤@¯ë¨ÓÁ¿¡A§ÚÌn¦b
Server Form ¶K¤J¤TÓ¤¸¥ó¡C¤@Ó¬O SQuery ¤¸¥ó¡A¤@Ó¬O SUpdateComp ¤¸¥ó¡A³Ì«á¤@Ó¬O SDataSource¤¸¥ó¡A¤À§OÁ¿z¦p¤U¡G
(1)
|
SQuery¡G»P¤§«e TVDSQL ©Î Delphi ªº Query
¤¸¥ó¤@¼Ë¡A¥Î¨Ó¤U¹F SQL »yªk¨Ï¥Î¡A¦¹¤¸¥óªº§@¥Î¬O¤U¹F©R¥Oµ¹ DataBase Server¡A¨Ã±N¸ê®Æ¶Ç°eµ¹ Client
ºÝ¡C |
(2)
|
SUpdateComp¡G¥»¤¸¥óªº§@¥Î¬O¦Û°Ê¤Æ³B²z
Client ºÝ©Òn¨Dªº Insert / Update / Delete µ¥»Ý¨D¡AA/P Server ·|¥H¦¹¤¸¥ó¨Ó¤U¹F¹ïÀ³ªº
Insert / Update / Delete µ¥ SQL ©R¥O¡C·íµM¡A¥»¤¸¥ó¥²¶·»P SQuery ¤¸¥ó¬Û°t¹ï¡A¤£¥i³æ¿W¨Ï¥Î¡C |
(3)
|
DataSource¡G¦Ó¥»¤¸¥ó¬O¥Î¨Ó¥]¸Ë
Master / Detail¡]¤@¹ï¦hÃö³s¡^ªº¸ê®Æµ¹¬Y¤@Ó SQuery ¨Ï¥Î¡A¤]´N¬O»¡±N¤@Ó Detail ªº¬ÛÃö¸ê®Æ¥]¸Ëµ¹¤@Ó
Master ·í§@¨ä Mater ªº¬Y¤@Ó Column¡C¦¹±Mªù¥Î¦b Master / Detail ªº±¡ªp¡A¨Ã¬°¤FÅý
Master / Detail ¯à¦P®É¦sÀɩҥ]¸Ëªº¤¸¥ó¡C¦p¹Ï©Ò¥Ü |
3. Sever Method¡]¦øªA¾¹µ{¦¡¡^
¡@¡@¥H«e¦b One-Tier ªº®É¥NùØ¡Aµ{¦¡³£¬O¦b³æ¥x¾÷¾¹¤W°õ¦æ¨Ã§¹¦¨¡A¦Û±q Microsoft »P¦U¼t°Ó¦b Windows
¤W¶}¥ßDCOM 1.¡]Distributed Component Object Model¡^ªº³W®æ«á¡AÓ¤H¹q¸£´N¶i¤J¦h¥x¨ó¦P¤u§@ªº®É¥N¡A²¦³ºÓ¤H¹q¸£ªº³t«×¦h§Ö¡A¶i¨B¦h¯«³t¡A¤]¥u¬O¤@³¡
PC¡A¦p¦óÅý¦U PC ¯à¨ó¦P¤u§@¡A¨º¤@©w¬O¤@ÓÅå¤Hªº¥@¬É¡A©ó¬Oªñ¦~¨Ó¬y¦æ 3-Tier »P N-Tier ´N¬O³o¼Ë¨Óªº¡A§Q¥Î¦U¦Û¤À¤uªº·§©À¡AÅý¤u§@¯¸©M¦øªA¾¹¦U¥q©Òªø¡A¶i¦ÓÅý
PC ¯àµo´§¥X·¥ªº®Ä¯à¡C¦b VD30 ¤¤¡A§A¥i¥H¦b Client ¤W©I¥s Server ºÝªºµ{¦¡¡A©I¥sªº¤èªk»P¤@¯ë©I¥s Client
ºÝªº PRG ¤£¤@¼Ë¡A§A¥²¶·¦b Client µ{¦¡¤¤¥H"_"¶}ÀY¥Nªí¬O Server ¤Wªº Form¡C»yªk®æ¦¡¦p¤U¡G
_ServerForm.MethodName¡]Parameters..¡^
¡½ ServerForm¡G¥Nªí¬O A/P Server ¤W¬YÓ Server Form¡]¤]¥i¥H»¡¬O Server ¤Wªº DataBase
Module¡^¡C
¡½ MethodName¡G¦b¤@Ó Server Form ¤W¥i¥H«Ø¥ß¦hÓ PRG¡A³oÓ³¡¥÷»P¦b Client ¤W¥i¥H«Ø¥ß¦hÓ
PRG ¬O¤@¼Ëªº¡C
¡½ Parameters¡G©I¥s Server Method ©Òn¶Ç»¼ªº°Ñ¼Æ¡A¦¹®É Client ·|±N«ü©wªº°Ñ¼Æ¤º®e¶Ç»¼µ¹ Server
ºÝ¡A¨Ã¥Ñ Server ¨Ó°õ¦æ¨Ã¶Ç¦^ȵ¹ Client¡A³o³¡¥÷´N¦n¶H¬O¦P¤@¥x Client ¤W°õ¦æ°Æµ{¦¡¤@¼Ë¡C
¡@¡@¦b 3-Tier ªº¬[ºc¤W¡AClient ºÝªº CDS ¤¸¥ó¬O¤£¯à¥h¤U¹F Insert / Delete / Update
«ü¥Oªº¡A¥u¯à³z¹L SUpdateComp ¨Ó¥N²z¡A¦pn§ó§ïªº¸ê®Æ«Ü¦h¡A©Î®Ú¥»»P Client ªº CDS µLÃö¡A´N¥²¶·¥H Server
Method ¨Ó¥N²z°õ¦æ¡A³oºØ Server Method ´N¦n¹³ 2-Tier ¦b DataBase ¤W°õ¦æªº Stored
Procedure ¬Û¦ü¡A¦]¬°ºô¸ô¶Ç¿é¤ñ¸û¦³ÀW¼eªº°ÝÃD¡A¦pªG¯àÅý¬Y¨Çµ{¦¡ª½±µ¦b DataBase Server ¤W°õ¦æ¡A·íµM¨ä®Ä²v·|¼W¥[¤£¤Ö¡A©Ò¥H
VD3.0 ªº Server Method ¤]¬O¬°¤F¦¹¥Øªº¡A¤]´N¬O»¡¦pªG§â¤@¨Ç¾ã²z¸ê®Æ©Î»Ýn³t«×ªºµ{¦¡¸m©ó A/P Server
¤W¨Ó°õ¦æªº¸Ü¡A·|Åý Client ºÝ¤£¶·n¨Ì¿à¤Ó°ªªººô¸ôÀW¼e¡C
¡@¡@¸ÑÄÀ»¡©ú1.¡GDCOM ªº«e¨´N¬O COM(Common Object Model)¡A¬O Microsoft ¦b Windows
¤W©Ò¶}¥ßªºµ{¦¡®w¤¸¥ó¤Æªº³W®æ¡A¹³¤@Ó¤j«¬ªº³nÅé¨t²Î¬OµLªk¥Ñ¤@Ó¤jªº°õ¦æÀɩҲզ¨¡A¥H«e¬O¥H DLL ¨Ó¨ú¥N¦@¥Îªºµ{¦¡®w¡A²{¦b¬O¥H
COM ¨Ó°µ¬°¦@¦Pªºµ{¦¡®w¡A¨Ã§âµ{¦¡®w¥Hª«¥ó¾É¦Vªº¤è¦¡¥]¸Ë¦¨¤¸¥ó¡A¥H§Qµ{¦¡ªº¿W¥ß©Ê»P¦A¥Î©Ê¡F¦Ó DCOM¡]Distributed¡^´N¬O¥i¥HÅý³o¨Ç
PC ¤W COM ¤¸¥ó¥i¥HÅý¨ä¥L PC ¨Ó¨Ï¥Î¡C²³æªº»¡¡A´N¬OÅý¤£¦P¹q¸£ªºµ{¦¡¥i¥H³Q¬Û¤¬¥s¥Î¡A§A¥i¯àÁÙ°O±o DLL §a¡A´N¬O§A¥i¥H¥h¸ü¤J¤@Óµ{¦¡®w¡A¨Ã¥h©I¥s¨äµ{¦¡®wªº¤@Ó¤lµ{¦¡¡A©Ò¥H
DLL ´N¬O³æ¥x PC ªºµ{¦¡®w¡A¦Ó DCOM ¤£¦ý¥i¥H¨ú¥N DLL¡A¦Ó¥B¥¦¬Æ¦Ü¥i¥HÅý¤£¦Pªº¹q¸£¶¡¥i¥H¬Û¤¬©I¥s¡A¤]´N¬O»¡ A
ªº PC ¥i¥H©I¥s B ªº PC ªº¬Y¤@Óµ{¦¡¥h°õ¦æ¡C
|