¼òµ¥µÄ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·½·¨À´°Ñǰ̨±ä¶¯µÄÊý ¾Ýд»Øµ½ºó
Ïà¹ØÎĵµ£º
1. ÃüÁîµÄ½ÓÊÕÕß
{¡¶HeadFirstÉè¼Æģʽ¡·Ö®ÃüÁîģʽ }
{ ±¾µ¥ÔªÖеÄÀàΪÃüÁîµÄ½ÓÊÕÕß }
{ ±àÒ빤¾ß £ºDelphi7.0 }
{ ÁªÏµ·½Ê½ £ºxshlife@163.com }
unit uReceiveObject;
interface
type
TLight = class(TObject)
private
FLocation: String;
public
constru ......
ÔÚÖ÷½çÃæµÄimplementation {$R *.dfm} Ï·ÅÈëÒÔÏ´úÂ룺
procedure PatchInt3;
var
NOP: Byte;
NTDLL: THandle;
BytesWritten: DWORD;
Address: Pointer;
begin
if Win32Platform <> VER_PLATFORM_WIN32_NT then
Exit;
NTDLL := GetModuleHandle('NTDLL.DLL');
if NT ......
´ó¼Ò¶¼ÈÏΪ£¬CÓïÑÔÖ®ËùÒÔÇ¿´ó£¬ÒÔ¼°Æä×ÔÓÉÐÔ£¬ºÜ´ó²¿·ÖÌåÏÖÔÚÆäÁé»îµÄÖ¸ÕëÔËÓÃÉÏ¡£Òò´Ë£¬ËµÖ¸ÕëÊÇCÓïÑÔµÄÁé»ê£¬Ò»µã¶¼²»Îª¹ý¡£Í¬Ê±£¬ÕâÖÖ˵·¨Ò²ÈúܶàÈ˲úÉúÎó½â£¬ËƺõÖ»ÓÐCÓïÑÔµÄÖ¸Õë²ÅÄÜËãÖ¸Õë¡£Basic²»Ö§³ÖÖ¸Õ룬Ôڴ˲»ÂÛ¡£Æäʵ£¬PascalÓïÑÔ±¾ÉíÒ²ÊÇÖ§³ÖÖ¸ÕëµÄ¡£´Ó×î³õµÄPascal·¢Õ¹ÖÁ½ñµÄObject Pascal£¬¿ÉÒÔ˵ÔÚÖ¸ÕëÔËÓ ......
@·ûºÅ·µ»ØÒ»¸ö±äÁ¿µÄµØÖ·
Àý£º
var
f:string;
p:^string; //ÉùÃ÷Ò»¸ö×Ö·û´®ÀàÐ͵ÄÖ¸Õë
begin
f ='demo'; ......