¼òµ¥µÄ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 }
{ E-Mail : xshlife@163.com }
unit uComponent;
interface
type
TBeverage = class(TObject) //³éÏóÒûÁÏÀà
protected
FDescription: String;
public
......
ÃüÁîģʽ¿ÉÒÔºÜÇáËɵÄʵÏÖ³·Ïú£¨Undo£©¹¦ÄÜ¡£
1. ÃüÁîµÄ½ÓÊÜÕß
unit uReceiveObject;
interface
type
TLight = class(TObject)
public
procedure Open;
procedure Off;
end;
implementation
{ TLight }
procedure TLight.Off;
begin
Writeln('Light is off.');
......
ÔÚÖ÷½çÃæµÄ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 ......
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; ......
ʲôÊÇÁ÷£¿Á÷,¼òµ¥À´Ëµ¾ÍÊǽ¨Á¢ÔÚÃæÏò¶ÔÏó»ù´¡ÉϵÄÒ»ÖÖ³éÏóµÄ´¦ÀíÊý¾Ý
µÄ¹¤¾ß¡£ÔÚÁ÷ÖУ¬¶¨ÒåÁËһЩ´¦ÀíÊý¾ÝµÄ»ù±¾²Ù×÷£¬Èç¶ÁÈ¡Êý¾Ý£¬Ð´ÈëÊý¾ÝµÈ£¬
³ÌÐòÔ±ÊǶÔÁ÷½øÐÐËùÓвÙ×÷µÄ£¬¶ø²»ÓùØÐÄÁ÷µÄÁíһͷÊý¾ÝµÄÕæÕýÁ÷Ïò¡£Á÷²»
µ«¿ÉÒÔ´¦ÀíÎļþ£¬»¹¿ÉÒÔ´¦Àí¶¯Ì¬ÄÚ´æ¡¢ÍøÂçÊý¾ÝµÈ¶àÖÖÊý¾ÝÐÎʽ¡£Èç¹ûÄã¶Ô
Á÷µÄ²Ù×÷·Ç³£ÊìÁ·£¬ÔÚ³ ......