¼òµ¥µÄ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. ¸´ÔÓµÄ×Óϵͳ
unit uSubObject;
interface
type
{ TAmplifierÓëTTuner£¬TCDPlayer£¬TDVDPlayerÏ໥ÒÀÀµ¡£ }
{ ÔÚTTunerµÈµÄ¼òµ¥ÊµÏÖʱÓò»µ½¶ÔTAmplifierµÄÒýÓ㬠}
{ µ«ÏÖʵÉú»îÖоÍÓ¦¸ÃÈÃTAmplifierÌṩ·þÎñ£¬ËùÒÔÕâÀï±£ÁôÁË¡£ }
{ TProjector¶ÔT ......
ûÓÐÓ¦ÓÃ״̬ģʽµÄ´úÂë
1. ¹¤³ÌÎļþ
program Project1;
{$APPTYPE CONSOLE}
uses
uGumballMachine in 'uGumballMachine.pas';
var
aGumballMachine: TGumballMachine;
begin
aGumballMachine := TGumballMachine.Create(5);
aGumballMachine.InsertQuarter;
aGumballMachine.TurnCrank;
Writeln; ......
ÓÉÓÚÏîÄ¿ÐèÒª£¬¿ªÊ¼Ñ§Ï°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; ......
Ãû³Æ ÀàÐÍ ËµÃ÷
abort º¯Êý ÒýÆð·ÅÆúµÄÒâÍâ´¦Àí
abs º¯Êý ¾ø¶ÔÖµº¯Êý
addexitproc º¯Êý ½«Ò»¹ý³ÌÌí¼Óµ½ÔËÐÐʱ¿âµÄ½áÊø¹ý³Ì±íÖÐ
addr º¯Êý ·µ»ØÖ¸¶¨¶ÔÏóµÄµØÖ·
adjustlinebreaks º¯Êý ½«¸ø¶¨×Ö·û´®µÄÐзָô·ûµ÷ÕûΪcr/lfÐòÁÐ
align ÊôÐÔ Ê¹¿Ø¼þλÓÚ´°¿Úij²¿·Ö
alignment ÊôÐÔ ¿ ......