ÔÚDelphiÖÐ×Ô¶¯¼ì²â¡¢½¨Á¢Êý¾Ý¿â±ðÃûºÍ±í¸ñ 2000-06-11 00:00:00¡¤
-¡¤Öйú¼ÆËã»úÊÀ½ç³ö°æ·þÎñ¹«Ë¾ p>¡¡¡¡Delphi3ÄÚ½¨µÄBorlandÊý¾Ý¿â ÒýÇæ(BDE)£¬Ê¹Delphi3³ÌÐòÄÜͨ¹ýÊý¾Ý¿â±ðÃû(DatabaseAlias)Ê®·Ö·½±ãµØ·ÃÎʸ÷ÖÖÀàÐ͵ÄÊý¾Ý¿â¡£È»¶ø£¬Êý¾Ý¿â±ðÃûµÄ½¨Á¢¡¢Ð޸ġ¢É¾³ýµÈά»¤¹¤×÷£¬ÐèÒªÔÚBDEAdministrator ÖнøÐУ¬Êý¾Ý¿âÖÐʵ¼Ê±í¸ñ½á¹¹µÄ½¨Á¢ºÍά»¤£¬ÓÐʱҲҪÔÚDataBaseDesktopÖÐÍê³É£¬Õâ¸øÓû§Ôö¼ÓÁ˲»ÉÙÀ§ÄÑ¡£ÓÐûÓа취ÈÃÓû§²»È¥Ö´ÐÐBDEAdministrator ºÍDataBaseDesktopÕâÁ½¸öÓ¦ÓóÌÐò£¬¾Í¿ÉÖ±½Ó¼ì²â¡¢½¨Á¢Êý¾Ý¿â±ðÃûºÍ¿âÖеıí¸ñÄØ£¿±ÊÕßͨ¹ý̽Ë÷£¬µÃµ½ÁËÒ»ÖÖ¿ÉÐеķ½°¸£¬ÏÖÒÔ±ÊÕßËù¿ª·¢ µÄÒ»¸öµ¥»ú°æµÄͼÊé×ÊÁϹÜÀíϵͳΪÀý£¬¼òÒª¼ÓÒÔ˵Ã÷¡£
Ò»¡¢Êý¾Ý¿â±ðÃû(Alias)µÄ¶¨ÒåºÍ¼ì²â·½·¨
¡¡¡¡µ±TypeΪSTANDARDʱ,±ðÃû¶¨Òå×î Ϊ¼òµ¥£¬Õâʱ½öÄܲÉÓÃPARADOX,DBASE,ASCIIDRVÈýÖÖÊý¾Ý¿â×÷ΪȱʡµÄÇý¶¯³ÌÐò(DEFAULTDRIVER)¡£
¡¡¡¡ÁíÍ⣬»¹Òª¶¨ÒåÊý¾Ý¿â´æ·Å·¾¶(PATH) ºÍENABLEBCD£¬²ÅÄܽ¨Á¢Ò»¸öÍêÕûµÄÊý¾Ý¿â±ðÃû¡£
¡¡¡¡DelphiµÄÊý¾Ý¿âÓ¦ÓóÌÐòÄÜ×Ô ¶¯Ìṩһ¸öSession×é¼þ£¬Õâ¸öSession×é¼þ¼´ÎªÓ¦ÓóÌÐòÓëBDEµÄ½Ó¿Ú¡£
1.¼ì²â±ðÃû
¡¡¡¡Í¨¹ýµ÷ÓÃSession.GetAliasNames(list:Tstrings) ·½·¨£¬¿É½«µ±Ç°BDEÅäÖÃÖеÄËùÓÐÊý¾Ý¿â±ðÃûµÄÃû³Æ´æ·Åµ½List×Ö·û´®ÁбíÖС£list.IndexOf(ÐèÒª¼ì²âµÄ±ðÃû)µÄÖµ»á¸æËßÎÒÃÇÕâ¸ö±ðÃûÊÇ·ñ ´æÔÚ(ÆäֵΪ1ʱ²»´æÔÚ£©¡£
2.Ôö¼ÓÒ»¸öеıðÃû
¡¡¡¡Session×é¼þµÄ¹ý³ÌAddStandardAlias(constName,Path,DefaultDriver:string),¿ÉÒÔÔö¼ÓÒ»¸ö±ê×¼ÀàÐ͵ÄÊý¾Ý¿â±ðÃû¡£ÀýÈçÔö¼ÓÒ»¸öÃûΪCntssamp£¬È±Ê¡Êý¾Ý¿âÇý¶¯³ÌÐòΪPARADOX¡¢´æ ·Å·¾¶Îªc:\delphp11µÄ±ðÃû£º
Session.AddStandardAlias(Cntssamp,c:\delphp11,Paradox);
3.BDEÅäÖÃÎļþ´æÅÌ
Session.SaveConfigFile;
¶þ¡¢Êý¾Ý¿âÖбí¸ñµÄ¶¨ÒåºÍ¼ì²â·½·¨
¡¡¡¡Êý¾Ý¿âÖбí¸ñµÄ¶¨Òå¡¢ ά»¤ºÍʹÓã¬Ö»ÓÐÔÚÊý¾Ý¿â±ðÃûÕýÈ·ÉèÖõÄÇé¿öϲÅÓÐÒâÒå¡£ÒÔTTable×é ¼þΪÀý£¬±ØÐëÉèÖÃÆäDatabaseNameΪһ¸öʵ¼Ê´æÔڵıðÃû¡£
1.¼ì²â±í¸ñÊÇ·ñ´æÔÚ
¡¡¡¡Í¨¹ýµ÷ÓÃSession.GetTableNames(constDatabaseName,Pattern:string;
Extensions,SystemTables:Boolean; List:TStrings)·½·¨£¬¿É½«µ±Ç°Ö¸¶¨Êý¾Ý¿â± ÖÐËùÓбí¸ñµÄÃû³Æ´æ·Å
µ½List×Ö·û´®ÁбíÖС£list.IndexOf(ÐèÒª¼ì²âµÄ±í¸ñÃû)µÄÖµ»á¸æËß ÎÒÃÇÕâ¸ö±í¸ñÊÇ·ñ´æÔÚ(ÆäֵΪ1ʱ²»´æÔÚ£©¡£
2.½¨Á¢Ò»¸ö±í¸ñ
¡¡¡¡µÚÒ»²½£¬ÉèÖÃTTable×é¼þµÄDataBase Name(±ðÃû)¡¢TableName(±í¸ñÃû)¡¢TableType(Êý¾Ý¿âÀàÐÍ);
¡¡¡¡µÚ¶þ²½£¬µ÷ÓÃTable.FieldDefs.Add(constName:string;DataType:FieldType;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( ¾ßÓÐΨһֵ£©µÈ¡£
µÚËIJ½£¬µ÷ÓÃTable.CreateTable ½¨Á¢±í¸ñ¡£
Èý¡¢Ò»¸öʵÀý
¡¡¡¡ÔÚForm1.FormcreateÊ ¼þÖÐдÈëÈçÏ´úÂ룬³ÌÐòÆô¶¯Ê±£¬½«×Ô¶¯¼ì²âÊÇ·ñ´æÔÚÊý¾Ý¿â±ðÃûCntssamp£¬Èç¹ûûÓÐÔò½¨Á¢Ö®£»×Ô¶¯¼ì²â±ðÃûCntssampÖÐÊÇ·ñ´æÔÚ±í¸ñTSK(ͼÊé¿â)£¬ Èç¹ûûÓÐÔò×Ô¶¯½¨Á¢±í¸ñTSK¡£
procedureTForm1.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µÄÊý¾Ý¿â±ðÃû}
ifanswer=IDCANCELthen
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);
ifanswer=IDCANCELthen
begin
ap.Free;
Exit;
end;
withtable1do
begin
Active:=false;
DatabaseName:=Cntssamp; {Êý¾Ý¿â±ðÃû}
TableName:=TSK; {±í¸ñÃû}
TableType:=ttParadox; {Êý¾Ý¿âÀàÐÍ}
withFieldDefs 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;
withIndexDefs do
begin {Ôö¼ÓË÷Òý}
Clear; {°´ÊéºÅ×ֶν¨Á¢Ö÷Ë÷Òý}
Add(SHSY,SH,[ixPrimary,ixUnique]);
end;
CreateTable; {´´½¨±í¸ñ}
end;
end;
ap.free; {ÊͷűäÁ¿ap}
end;
|