麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > Delphi > 正文

Delphi中建表

2019-11-17 05:11:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
一、數(shù)據(jù)庫(kù)別名(Alias)的地位
  Delphi內(nèi)建的數(shù)據(jù)庫(kù)引擎BDE(Borland Database Engine),提供了強(qiáng)大的數(shù)庫(kù)處理功能,BDE是Delphi數(shù)據(jù)庫(kù)功能的核心部分。

  以只有單機(jī)使用的本地?cái)?shù)據(jù)庫(kù)為例,Delphi程序可以直接通過(guò)BDE來(lái)控制數(shù)據(jù)庫(kù)數(shù)據(jù)的存取。這種存取控制是以配置好BDE參數(shù)為前提的,具體的來(lái)說(shuō)是正確設(shè)置了數(shù)據(jù)庫(kù)的別名(Alias),Delphi的最常用的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)組件TTable,其屬性DataBaseName即為已經(jīng)定義的數(shù)據(jù)庫(kù)別名,在沒(méi)有定義數(shù)據(jù)庫(kù)別名的情況下,是不能訪(fǎng)問(wèn)具體的數(shù)據(jù)庫(kù)表格的。因此,在建立數(shù)據(jù)庫(kù)表格時(shí),必須有兩個(gè)過(guò)程:一是通過(guò)BDE檢測(cè)相應(yīng)的數(shù)據(jù)庫(kù)別名是否存在,假如不存在,則應(yīng)首先建立相應(yīng)的數(shù)據(jù)庫(kù)別名;二是檢測(cè)該數(shù)據(jù)庫(kù)別名(即DataBaseName)中是否存在需要建立的數(shù)據(jù)庫(kù)表格,假如不存在,才建立之。這樣,才能保護(hù)原有表格的數(shù)據(jù)不丟失。


二、session組件: Delphi數(shù)據(jù)庫(kù)程序與BDE的接口
  Delphi自動(dòng)為數(shù)據(jù)庫(kù)應(yīng)用程序提供了一個(gè)Session組件,這個(gè)Session組件是應(yīng)用程序與BDE接口的要害。下面是Session組件關(guān)于BDE接口的幾個(gè)過(guò)程的原型說(shuō)明。
  1.GetAliasNames(list:Tstrings);將當(dāng)前BDE配置中的所有數(shù)據(jù)庫(kù)別名的名稱(chēng)存放到List字符串列表中。

  2.AddStandardAlias(const Name, Path, DefaultDriver: string);增加一個(gè)標(biāo)準(zhǔn)類(lèi)型的數(shù)據(jù)庫(kù)別名。例如增加一個(gè)名為Cntssamp,缺省數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序?yàn)镻ARADOX、存放路徑為c:/delphp11的別名:
  Session.AddStandardAlias(Cntssamp,c:/delphp11,Paradox);

  3.GetTableNames(const DatabaseName, Pattern: string; Extensions,SystemTables: Boolean; List: TStrings);可將指定數(shù)據(jù)庫(kù)別名中所有表格的名稱(chēng)存放到List字符串列表中。

  4.SaveConfigFile; 將BDE配置存盤(pán)。
  另外,用List.IndexOf(指定串)的值判定字符串列表中是否有需要的字符串,來(lái)決定是否應(yīng)建立新的數(shù)據(jù)庫(kù)別名和數(shù)據(jù)庫(kù)表格。

三、一個(gè)實(shí)例
  在Form1.FormCreate事件中寫(xiě)入如下代碼,程序啟動(dòng)時(shí),將自動(dòng)檢測(cè)是否存在數(shù)據(jù)庫(kù)別名Cntssamp,假如沒(méi)有則建立之;自動(dòng)檢測(cè)別名Cntssamp中是否存在表格TSK(圖書(shū)庫(kù)),假如沒(méi)有則自動(dòng)建立表格TSK。
  PRocedure TForm1.FormCreate(Sender: TObjec
  var
    ap:TStringList; {字符串列表變量}
  answer:Integer;
  begin
   ap:=TStringlist.Create;
   Session.GetAliasNames(ap); {取得別名列表}
   if (ap.IndexOf(Cntssamp)=-1) then {判定別名是否存在}
   begin
   answer:=application.MessageBox(別名Cntssamp不存在,現(xiàn)在創(chuàng)建嗎?,BDE信息窗口,mb—OKCancel);{增加一個(gè)名為Cngzsamp的數(shù)據(jù)庫(kù)別名}
   if answer=IDCANCEL then
begin
   ap.Free;
   Exit;
  end;

   Session.AddStandardAlias(Cntssamp,c:/delphp11,Paradox);
   Session.SaveConfigFile; {BDE配置文件存盤(pán)}
  end ;

   ap.Clear; {取得別名Cngzsamp中的所有表格名稱(chēng)列表}
   Session.GetTableNames(Cntssamp,,False,False,ap);
   if (ap.IndexOf(TSK)=-1) then {判定表格是否存在}
   begin
   answer:=Application.MessageBox(別名Cntssamp中不存在表格TSK,現(xiàn)在創(chuàng)建嗎?,表格信息窗口,mb—OKCancel);
   if answer=IDCANCEL then

begin
   ap.Free;
   Exit;
   end;

   with table1 do
begin
   Active:=false;
   DatabaseName:=Cntssamp; {數(shù)據(jù)庫(kù)別名}
   TableName:=TSK;   {表格名}
   TableType:=ttParadox; {數(shù)據(jù)庫(kù)類(lèi)型}
    with FieldDefs do
begin {增加字段}
   Clear;
   Add(SH,ftString,30,False); {書(shū)號(hào) String(30)}
   Add(SM,ftString,30,False); {書(shū)名 String(30)}
   Add(CBS,ftString,20,False); {出版社 String(20)}
   Add(CBRQ,ftDate,0,False); {出版日期 Date}
   Add(YS,ftInteger,0,False); {頁(yè)數(shù) Integer}
   end;

   with IndexDefs do
begin {增加索引}
   Clear; {按書(shū)號(hào)字段建立主索引}
   Add(SHSY,SH,[Primary,ixUnique]);
   end;

   CreateTable; {創(chuàng)建表格}
   end;
   end ;

   ap.free; {釋放變量ap}
  end;

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 久久久久久久久久久高潮一区二区 | 成年人在线视频免费 | 日本高清电影在线播放 | 欧美一级网 | 日日摸夜夜骑 | 中文字幕视频在线播放 | av视在线 | 91成人一区| 日韩毛片在线看 | 97久久人人超碰caoprom | qyl在线视频精品免费观看 | 91av资源在线 | 最新中文在线视频 | 国产精品久久久久久婷婷天堂 | 黄色成人在线 | 热99在线视频 | 欧美一级黄色片在线观看 | 久久影院国产精品 | 日本在线视频一区二区三区 | 亚洲成人在线视频网 | 美女色影院 | 成人福利免费在线观看 | 久草影音 | 中文字幕涩涩久久乱小说 | 黄色网欧美 | 亚洲天堂在线电影 | 色综合欧美 | 久久久久中文字幕 | 女人裸体让男人桶全过程 | 18欧美性xxxx极品hd | 国产在线观看91精品 | 日本欧美一区二区三区在线播 | 国产午夜精品久久久久久免费视 | 成人一区久久 | 亚洲精品av在线 | 天天草夜夜爽 | 午夜视| 色人久久 | 日本中文视频 | 成人免费毛片片v | 中文字幕在线视频日本 |