¼òµ¥µÄDelphiÈý²ã³ÌÐò¿ª·¢
Ò»Äêǰ¿ª·¢ÁËÒ»¸öMIDASµÄ³ÌÐò,×î½üÐ޸ķþÎñ¶Ë,¿ÉÊÇÕâ¸ö·þÎñÎÞ·¨×¢²á,×îºóÖÕÓÚÕÒµ½Á˽â¾ö°ì·¨,Õâ¸öÏà¹ØÎÄÕÂÈçÏÂ:(ËãÊDZ¸·Ý°É)
£¨Ò»£©MIDASÊÇʲô£¿
DelphiÖÐMIDASµ½µ×ÊÇÊ²Ã´ÄØ?ºÍËûÏà¹Ø×é¼þÊÇÊ²Ã´ÄØ?
MIDAS(Multitiered Distributed Application Services)¶à²ã·Ö²¼Ê½Ó¦Ó÷þÎñ¡£
DelphiËùÌá³öµÄMulti-Tier½á¹¹ÊǰÑÔÀ´µÄTwo-Tierǰ̨ӦÓóÌÐòÄÚµÄdbExpress,ADO,BDE,SQL Link,DataMoule,Äõ½ÁíÍâһ̨NT·þÎñÆ÷(¾ÍÊÇËùνµÄÓ¦ÓóÌÐò·þÎñÆ÷),¶øÇ°Ì¨³ÌÐòֻʣÏÂÒ»¸ö¿ÉÖ´ÐÐÎļþ¼°MIDAS.DLL,¶øÒƵ½NT·þÎñÆ÷ÉϵÄDataMouleÔò±ä³ÉÒ»¸öCOM³ÌÐò(Remote DataModule).
×¢:ǰ̨һ¶¨Òª°ÑMIDAS.DLL·¢²¼µ½ÏµÍ³Ä¿Â¼ÏÂ.
(1)ǰ̨³ÌÐò»áͨ¹ýµ÷ÓÃÓ¦ÓóÌÐò·þÎñÆ÷ÌṩµÄ·½·¨(½Ó¿Ú)Ìá³öÒ»¸öÇëÇó
Ó¦ÓóÌÐò·þÎñÆ÷»áÏìÓ¦Õâ¸öÇëÇó,´«ËÍÒ»¸öÏàÓ¦µÄSQLÃüÁîµ½ºǫ́Êý¾Ý¿â,¶øºǫ́Êý¾Ý¿â»á°ÑÖ´ÐÐSQLÃüÁî²úÉúµÄDataSet·µ»Ø¸øÓ¦ÓóÌÐò·þÎñÆ÷.
×¢:DelphiÌṩÁËType LibraryÀ´°ïÖúÓ¦ÓóÌÐò·þÎñÆ÷¶¨ÒåCOM·½·¨(½Ó¿Ú)
(2)NT·þÎñÆ÷ÉϵÄCOM³ÌÐòÊÇͨ¹ýÖмäÈí¼þ(dbExpress,ADO,BDE,SQL Link)´«ËÍSQLµ½ºǫ́Êý¾Ý¿â.
µ±Ó¦ÓóÌÐò·þÎñÆ÷Òª°Ñ¶ÁÈ¡µ½µÄDataSet´«Ë͸øÇ°Ì¨Ê±,¾Í±ØÐëÀûÓÃDCOMµÄ»úÖÆÀ´½øÐÐ.DelphiÌṩµÄTDataSetProvider×é¼þ¾Í»á°Ñ¶ÁÈ¡µ½µÄDataSetѹËõ²¢ÇÒ·Ö¸î³ÉÒ»¶ÎÒ»¶ÎµÄÊý¾Ý°ü,ͨ¹ýDCOM»òTCP/IP´«¸øÇ°Ì¨.
×¢:DelphiÌṩÁËRemoteDataModuleÏòµ¼À´°ïÄã²úÉúCOM³ÌÐòµÄ½á¹¹.
ÓÉÓÚDelphiµÄ³ÌÐò¾ßÓд«ËÍDataSetµÄÌØÊâ»úÖÆ,ËùÒÔDelphiҲʵÏÖÁËÒ»¸ö½Ó¿Ú½Ð×öIProvider(¼´TDataSetProvider),À´°ïÖúÓ¦ÓóÌÐò·þÎñÆ÷ÉϵÄCOM³ÌÐò·¢ËÍDataSetÊý¾Ý.
(3)ǰ̨³ÌÐòÓëNT·þÎñÆ÷ÉϵÄCOM³ÌÐòÊÇͨ¹ýDCOMµÄ»úÖÆ»¥Ï๵ͨ
ǰ̨µÄÓ¦ÓóÌÐòÊÇͨ¹ýMIDAS.DLLºÍÓ¦ÓóÌÐò·þÎñÆ÷Ï໥¹µÍ¨,ǰ̨µÄMIDAS.DLL»á°Ñ½ÓÊÕµ½µÄÓ¦ÓóÌÐò·þÎñÆ÷·¢¹ýÀ´µÄÊý¾Ý°üÔÙ»¹Ô³ÉDataSet,¶ª¸øÇ°Ì¨³ÌÐòÖеÄTClientDataSet×é¼þ.
×¢:ǰ̨³ÌÐò±ØÐëÌṩÏàÓ¦µÄTClientData×é¼þÀ´ºÍÓ¦ÓóÌÐò·þÎñÆ÷ÉϵÄÿ¸öIProvider(¼´TDataSetProvider)¶ÔÓ¦.Óû§ ÐÞ¸Äǰ̨Êý¾Ýʱ,Ð޸ĵÄÖ»ÊÇCache(»º´æ)ÔÚǰ̨µÄDataset,×îºóҪͨ¹ýTClientData.ApplyUpdate·½·¨À´°Ñǰ̨±ä¶¯µÄÊý ¾Ýд»Øµ½ºó
Ïà¹ØÎĵµ£º
ÊÊÅäÆ÷ģʽµÄÖ÷ÒªÒâͼÊǶÔÏÖÓÐÀàµÄ½Ó¿Ú½øÐÐת»»£¬ÒÔÂú×ãÄ¿±êÀàµÄÐèÇ󡣯ä´Î£¬¿ÉÒÔ¸øÄ¿±êÀàµÄ½Ó¿ÚÌí¼ÓеÄÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©¡£ÕâÒ»µãÈÝÒ×Óë×°ÊÎģʽ»ìÏý¡£´ÓÒâͼ·½ÃæÀ´¿´£¬×°ÊÎģʽ²»¸Ä±ä£¨Í¨³£Ö¸Ôö¼Ó£©½Ó¿ÚÖеÄÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©£¬¶øÊÇÔÚÔÓÐÐÐΪ£¨Ö÷ÒªÖ¸·½·¨£©µÄ»ù´¡ÉÏÌí¼ÓÐµĹ¦ÄÜ£»´ÓÀà½á¹¹· ......
¹¹½¨ Windows SOAP ·þÎñÆ÷Ó¦ÓóÌÐò
Ê×ÏÈÔÚ Windows ÉϹ¹½¨·þÎñÆ÷£¬È»ºóÔÚ Linux ÉϹ¹½¨¿Í»§»ú¡££¨Èç¹ûÐèÒª£¬¿ÉÒÔʹÓÃÆäËü·½·¨ — »òÕß½«ËüÃÇÈ«²¿¹¹½¨ÔÚ Windows »ò Linux ÉÏ¡££©¶ÔÓÚ Windows SOAP ·þÎñÆ÷£¬Æô¶¯ Delphi 7 Enterprise£¬Ö´ÐÐ File -> New -> Other£¬×ªÖÁ¶ÔÏó×ÊÔ´¿â£¨Object Repository£©µÄ ......
Ò»¡¢ÔÚDelphi7ÖÐÁ¬½ÓMS SQL Server 2000µÄ·½·¨¡£
¸Õ¿ªÊ¼Ê±½çÃæÈçÏ£ºÌí¼Ó4¸ö¿Ø¼þ¡£
ÉèÖÿؼþÊôÐÔ¹ý³Ì£º
1¡¢ADOConnection1ÉèÖÃ
1£©Ë«»÷ADOConnection1£¬½øÐÐÉèÖÃÁ¬½Ó×Ö·û´®£¨×÷ÓÃÊÇ£ºÑ¡È¡Á¬½ÓÇý¶¯·½Ê½ºÍÁ¬½ÓµÄÊý¾Ý¿âÉèÖã©¡£¹ý³ÌÈçÏÂͼËùʾ£º
2¡¢ADOQuery1ÉèÖãº
1£©ADOQuery1.connectionÊôÐÔΪADOConnection1; ......
ÓÉÓÚÏîÄ¿ÐèÒª£¬¿ªÊ¼Ñ§Ï°DELPHI£¬²¢×Ô¼º±àд´úÂëÀ´²âÊÔÓÃVCдµÄDLL£¬¾õµÃ×Ô¼ºÓÖ¶àÕÆÎÕÁËһЩ£¬²»¶ÔµÄµØ·½Ï£ÍûÖ¸Õý£¬ÎÒ»áºÃºÃѧϰ
1¡¢ÏìÓ¦¼üÅÌʼþ£º
ÒòΪKeyPreviewĬÈÏÊÇ False;ÎÒÃÇÕâÀïÐèÒªÏìÓ¦¼üÅÌʼþµÄ»°£¬ÐèÒª½«ÆäÐÞ¸ÄΪTrue£»
ËùÒÔKeyPreview:=True; Õâ¶ÔһЩ¿ì½Ý¼ü»áÓÐÓá£
ÔÚFormCreateÕâ¸öº¯ÊýÀïÐÞ¸ÄKeyPrevie ......
DECLARE
TYPE TY_QUECUR IS REF CURSOR;
CUR_COLUMNS TY_QUECUR;
SQLCMD VARCHAR(500);
TABNAME VARCHAR(20);
COLNAME VARCHAR(50);
COLTYPE VARCHAR(20);
COLCOMMENT VARCHAR2(50);
COLLENGTH INTEGER;
COLPRECISION INTEGER; ......