·¢ÐÅÈË: lofe ()¸Ð¼¤Éú»î(), ÐÅÇø: BorlandDev
±ê Ìâ: ÔÚDelphiÖÐ×Ô¶¯¼ì²â¡¢½¨Á¢Êý¾Ý¿â±ðÃûºÍ±í¸ñ (תÌù)
·¢ÐÅÕ¾: ¹þ¹¤´ó×϶¡Ïã (Mon Sep 4 16:16:45 2000), תÐÅ
ÔÚDelphiÖÐ×Ô¶¯¼ì²â¡¢½¨Á¢Êý¾Ý¿â±ðÃûºÍ±í¸ñ
---- Delphi3 ÄÚ ½¨ µÄBorland Êý ¾Ý ¿â Òý Çæ(BDE)£¬ ʹDelphi3 ³Ì Ðò ÄÜ Í¨ ¹ý Êý ¾Ý ¿â ±ð Ãû(Database Alias) Ê® ·Ö ·½ ±ã µØ ·Ã ÎÊ ¸÷ ÖÖ Àà ÐÍ µÄ Êý ¾Ý ¿â¡£È» ¶ø£¬ Êý¾Ý¿â±ðÃûµÄ½¨Á¢¡¢Ð޸ġ¢É¾³ýµÈά»¤¹¤×÷£¬Ðè Òª ÔÚ BDE Administrator ÖÐ ½ø ÐУ¬ Êý ¾Ý ¿â ÖРʵ
¼Ê ±í ¸ñ ½á ¹¹ µÄ ½¨ Á¢ ºÍ ά »¤£¬ ÓРʱ Ò² Òª ÔÚDataBase Desktop ÖÐ Íê ³É£¬ Õâ ¸ø Óà »§ Ôö ¼Ó ÁË ²» ÉÙ À§ ÄÑ¡£ ÓРû ÓÐ °ì ·¨ Èà Óà »§ ²» È¥ Ö´ ÐÐBDE Administrator ºÍDataBase Desktop Õâ Á½ ¸ö Ó¦ Óà ³Ì Ðò£¬ ¾Í ¿É Ö± ½Ó ¼ì ²â¡¢ ½¨ Á¢ Êý ¾Ý ¿â ±ð Ãû ºÍ
¿â ÖÐ µÄ ±í ¸ñ ÄØ £¿ ±Ê Õß Í¨ ¹ý ̽ Ë÷£¬ µÃ µ½ ÁË Ò» ÖÖ ¿É ÐÐ µÄ ·½ °¸£¬ ÏÖ ÒÔ ±Ê Õß Ëù ¿ª ·¢ µÄ Ò» ¸ö µ¥ »ú °æ µÄ ͼ Êé ×Ê ÁÏ ¹Ü Àí ϵ ͳ Ϊ Àý£¬ ¼ò Òª ¼Ó ÒÔ Ëµ Ã÷¡£
Ò»¡¢ Êý¾Ý¿â±ðÃû(Alias) µÄ¶¨ÒåºÍ¼ì²â·½·¨
---- µ±Type ΪSTANDARD ʱ, ±ð Ãû ¶¨ Òå ×î Ϊ ¼ò µ¥£¬ Õâ ʱ ½ö ÄÜ ²É ÓÃPARADOX, DBASE,ASCIIDRV Èý ÖÖ Êý ¾Ý ¿â ×÷ Ϊ ȱ Ê¡ µÄ Çý ¶¯ ³Ì Ðò(DEFAULT DRIVER)¡£
---- Áí Í⣬ »¹ Òª ¶¨ Òå Êý ¾Ý ¿â ´æ ·Å · ¾¶(PATH) ºÍENABLE BCD£¬ ²Å ÄÜ ½¨ Á¢ Ò» ¸ö Íê Õû µÄ Êý ¾Ý ¿â ±ð Ãû¡£
---- Delphi µÄ Êý ¾Ý ¿â Ó¦ Óà ³Ì Ðò ÄÜ ×Ô ¶¯ Ìá ¹© Ò» ¸öSession ×é ¼þ£¬ Õâ ¸ö Session ×é ¼þ ¼´ Ϊ Ó¦ Óà ³Ì Ðò ÓëBDE µÄ ½Ó ¿Ú¡£
---- 1. ¼ì ²â ±ð Ãû
---- ͨ ¹ý µ÷ ÓÃSession.GetAliasNames(list:Tstrings) ·½ ·¨£¬ ¿É ½« µ± Ç°BDE Åä Öà ÖÐ µÄ Ëù ÓÐ Êý ¾Ý ¿â ±ð Ãû µÄ Ãû ³Æ ´æ ·Å µ½List ×Ö ·û ´® ÁÐ ±í ÖС£ list.IndexOf(' Ðè Òª ¼ì ²â µÄ ±ð Ãû') µÄ Öµ »á ¸æ Ëß ÎÒ ÃÇ Õâ ¸ö ±ð Ãû ÊÇ ·ñ ´æ ÔÚ ( Æä Öµ Ϊ-1 ʱ ²»
´æ ÔÚ£©¡£
---- 2. Ôö ¼Ó Ò» ¸ö РµÄ ±ð Ãû
---- Session ×é ¼þ µÄ ¹ý ³ÌAddStandardAlias(const Name, Path, DefaultDriver: string), ¿É ÒÔ Ôö ¼Ó Ò» ¸ö ±ê ×¼ Àà ÐÍ µÄ Êý ¾Ý ¿â ±ð Ãû¡£ Àý Èç Ôö ¼Ó Ò» ¸ö Ãû ΪCntssamp£¬ ȱ Ê¡ Êý ¾Ý ¿â Çý ¶¯ ³Ì Ðò ΪPARADOX¡¢ ´æ ·Å · ¾¶ Ϊc:\delphp11 µÄ ±ð Ãû£º
---- Session.AddStandardAlias('Cntssamp','c:\delphp11','Paradox');
---- 3.BDE Åä ÖÃ ÎÄ ¼þ ´æ ÅÌ
---- Session.SaveConfigFile;
¶þ¡¢ Êý¾Ý¿âÖбí¸ñµÄ¶¨ÒåºÍ¼ì²â·½·¨
---- Êý ¾Ý ¿â ÖÐ ±í ¸ñ µÄ ¶¨ Òå¡¢ ά »¤ ºÍ ʹ Ó㬠ֻ ÓÐ ÔÚ Êý ¾Ý ¿â ±ð Ãû Õý È· Éè Öà µÄ Çé ¿ö Ï ²Å ÓÐ Òâ Òå¡£ ÒÔTTable ×é ¼þ Ϊ Àý£¬ ±Ø Ðë Éè Öà ÆäDatabaseName Ϊ Ò» ¸ö ʵ ¼Ê ´æ ÔÚ µÄ ±ð Ãû¡£
---- 1. ¼ì ²â ±í ¸ñ ÊÇ ·ñ ´æ ÔÚ
---- ͨ ¹ý µ÷ ÓÃSession.GetTableNames(const DatabaseName, Pattern: string; Extensions,SystemTables: Boolean; List: TStrings) ·½ ·¨£¬ ¿É ½« µ± Ç° Ö¸ ¶¨ Êý ¾Ý ¿â ±ð Ãû ÖÐ Ëù ÓÐ ±í ¸ñ µÄ Ãû ³Æ ´æ ·Å µ½ List ×Ö ·û ´® ÁÐ ±í ÖС£list.IndexOf(' Ðè Òª ¼ì ²â µÄ
±í ¸ñ Ãû') µÄ Öµ »á ¸æ Ëß ÎÒ ÃÇ Õâ ¸ö ±í ¸ñ ÊÇ ·ñ ´æ ÔÚ( Æä Öµ Ϊ-1 ʱ ²» ´æ ÔÚ£©¡£
---- 2. ½¨ Á¢ Ò» ¸ö ±í ¸ñ
---- µÚ Ò» ²½£¬ Éè ÖÃTTable ×é ¼þ µÄDataBase Name( ±ð Ãû)¡¢TableName ( ±í ¸ñ Ãû)¡¢TableType( Êý ¾Ý ¿â Àà ÐÍ);
---- µÚ ¶þ ²½£¬ µ÷ ÓÃTable.FieldDefs.Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean) Ôö ¼Ó ±í ¸ñµÄ ¸÷ ¸ö ×Ö ¶Î£¬ Æä ÖÐName Ϊ ×Ö ¶Î Ãû£¬DataType Ϊ ×Ö ¶Î Àà ÐÍ£¨ ³£ Óà µÄ ÓÐ ftInteger,ftString,ftDate,ftBoolean µÈ£©,Size Ϊ
×Ö ¶Î ³¤ ¶È£¬ Required Ϊ ¸Ã ×Ö ¶Î ÊÇ ·ñ ÔÊ Ðí ÓÐ ¿Õ Öµ¡£
---- µÚ Èý ²½£¬ µ÷ ÓÃTable.IndexDefs.Add(const Name, Fields: string; Options: TIndexOptions) ·½ ·¨ Ôö ¼Ó ±í ¸ñ µÄ Ë÷ Òý ÎÄ ¼þ£¬ Æä ÖÐ Name Ϊ Ë÷ Òý ÎÄ ¼þ Ãû£¬Fields Ϊ Ë÷ Òý ×Ö ¶Î£¬options Ϊ Ë÷ Òý ²Î Êý µÄ ¼¯ ºÏ£¬ ³£ Óà µÄ Ë÷ Òý ²Î Êý ÓÐixPrimary( Ö÷
¼ü£©¡¢ ixDescending( ½µ Ðò)¡¢ ixUnique( ¾ß ÓРΨ Ò» Öµ£© µÈ¡£
---- µÚ ËÄ ²½£¬ µ÷ ÓÃTable.CreateTable ½¨ Á¢ ±í ¸ñ¡£
Èý¡¢Ò»¸öʵÀý
---- ÔÚForm1.Formcreate Ê ¼þ ÖРд Èë Èç Ï ´ú Â룬 ³Ì Ðò Æô ¶¯ ʱ£¬ ½« ×Ô ¶¯ ¼ì ²â ÊÇ ·ñ ´æ ÔÚ Êý ¾Ý ¿â ±ð ÃûCntssamp£¬ Èç ¹û û ÓÐ Ôò ½¨ Á¢ Ö®£» ×Ô ¶¯ ¼ì ²â ±ð ÃûCntssamp ÖÐ ÊÇ ·ñ ´æ ÔÚ ±í ¸ñTSK( ͼ Êé ¿â)£¬ Èç ¹û û ÓÐ Ôò ×Ô ¶¯ ½¨ Á¢ ±í ¸ñTSK¡£
procedure TForm1.FormCreate(Sender: TObject);
var
ap:TStringList; {×Ö·û´®Áбí±äÁ¿}
answer:Integer;
begin
ap:=TStringlist.Create;
Session.GetAliasNames(ap); {È¡µÃ±ðÃûÁбí}
if (ap.IndexOf('Cntssamp')=-1) then {ÅжϱðÃûÊÇ·ñ´æÔÚ}
begin
answer:=Application.MessageBox('±ðÃûCntssamp²»´æÔÚ£¬ÏÖÔÚ´´½¨Âð£¿','BDEÐÅÏ¢´°¿Ú',mb_OKCancel);
{Ôö¼ÓÒ»¸öÃûΪCngzsampµÄÊý¾Ý¿â±ðÃû}
if answer=IDCANCEL then
begin
ap.Free;
Exit;
end;
Session.AddStandardAlias('Cntssamp','c:\delphp11','Paradox');
Session.SaveConfigFile; {BDEÅäÖÃÎļþ´æÅÌ}
end ;
ap.Clear; {È¡µÃ±ðÃûCngzsampÖеÄËùÓбí¸ñÃû³ÆÁбí}
Session.GetTableNames('Cntssamp','',False,False,ap);
if (ap.IndexOf('TSK')=-1) then {Åжϱí¸ñÊÇ·ñ´æÔÚ}
begin
answer:=Application.MessageBox( '±ðÃûCntssampÖв»´æÔÚ±í¸ñTSK,ÏÖÔÚ´´½¨Âð£¿','±í¸ñÐÅÏ¢´°¿Ú',mb_OKCancel);
if answer=IDCANCEL then
begin
ap.Free;
Exit;
end;
with table1 do
begin
Active:=false;
DatabaseName:='Cntssamp'; {Êý¾Ý¿â±ðÃû}
TableName:='TSK'; {±í¸ñÃû}
TableType:=ttParadox; {Êý¾Ý¿âÀàÐÍ}
with FieldDefs do
begin {Ôö¼Ó×Ö¶Î}
Clear;
Add('SH',ftString,30,False); {ÊéºÅ String(30)}
Add('SM',ftString,30,False); {ÊéÃû String(30)}
Add('CBS',ftString,20,False); {³ö°æÉç String(20)}
Add('CBRQ',ftDate,0,False); {³ö°æÈÕÆÚ Date}
Add('YS',ftInteger,0,False); {Ò³Êý Integer}
end;
with IndexDefs do
begin {Ôö¼ÓË÷Òý}
Clear; {°´ÊéºÅ×ֶν¨Á¢Ö÷Ë÷Òý}
Add('SHSY','SH',[ixPrimary,ixUnique]);
end;
CreateTable; {´´½¨±í¸ñ}
end;
end ;
ap.free; {ÊͷűäÁ¿ap}
end;
------------------------------------------------------------------------
Öйú¼ÆËã»úÊÀ½ç³ö°æ·þÎñ¹«Ë¾°æȨËùÓÐ
--
¡ù ÐÞ¸Ä:£®haojs ÓÚ Sep 4 16:11:18 Ð޸ı¾ÎÄ£®[FROM: bbs.hit.edu.cn]
--
¡ù ת¼Ä:£®Î人°×Ôƻƺ×Õ¾ bbs.whnet.edu.cn£®[FROM: bbs.hit.edu.cn]
--
¡î À´Ô´:£®¹þ¹¤´ó×϶¡Ïã bbs.hit.edu.cn£®[FROM: haojs.bbs@bbs.whnet.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
Ò³ÃæÖ´ÐÐʱ¼ä£º4.165ºÁÃë