·¢ÐÅÈË: 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ºÁÃë