亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Delphi > 正文

DELPHI中數據文件路徑的管理

2019-11-18 17:59:05
字體:
來源:轉載
供稿:網友

Delphi中的Table控件(Component)和query控件都需要有一個DatabaseName屬性??梢杂肈atabaseName屬性來指定該控件所引用的數據表路徑。有兩種方法可以為屬性DatabaseName設置路徑:第一種方法是直接輸入數據表所在路徑,另一種方法是使用數據庫別名(Alias)。在Delphi中數據庫別名是在數據庫引擎(BDE)中設定的,一個別名對應一個文件路徑??梢赃@樣為別名定義:別名是對文件路徑的映射,是文件路徑的簡稱。因此,在屬性DataBaseName中使用數據庫別名和使用文件路徑實質上都是一樣的,他們都是作為查找數據表的根路徑。但是,在數據庫應用程序設計中,如果涉及到的Table控件和Query控件比較多的話,那么使用別名來引用文件路徑就十分高效、方便,且不容易出錯。原因是顯而易見的:一方面,別名可以在列表中直接存取而不像文件路徑那樣需要從鍵盤輸入;另一方面,別名可以設置的很短,即使從鍵盤上輸入也比較快捷。

另外,在Table控件的屬性TableName和Query控件的SQL語句中,都可以包含數據表的路徑信息。因為Query和Table控件的情況十分相似,所以下面只對Table控件進行說明。這種路徑信息既可以是一個完整的路徑,也可以是一個完整路徑的后面部分。比如對Table控件的屬性TableName進行賦值時,可以把c:/delphi/demo1/data/subscriber賦給它,也可以把data/subscriber賦給它。即,可以使用絕對路徑,也可以使用相對路徑。

為了便于程序移植,通常只需要在屬性DataBaseName中指定數據表的路徑,而在TableName中不必包括路徑信息。一般情況下,不要在屬性TableName 中指定完整的路徑。

數據庫應用程序的移植是一個重要的問題。因為在數據庫應用程序中要訪問數據庫或數據表,就要涉及到數據文件的路徑。一般來說,數據庫應用程序開發完成后要移植到其他的機器上使用,因此數據庫應用程序運行時的數據文件路徑很可能和開發時的不同。所以必須對數據文件的路徑進行有效的管理,以便用于系統的移植。下面介紹三種管理數據文件路徑的方法。
1.把數據文件建立在應用程序所在目錄的子目錄下。具體過程為
(1)        為了設計起來方便,在設計時可以使用數據庫別名,且該數據庫別名指向應用程序所在路徑。把子路徑名加上數據表名后賦值給Table控件的屬性TableName。
(2)        在發行應用程序之前,把所有的Table控件和Query空間的屬性Active都設置為False,刪除屬性DataBase中的所有字符(即置空)。
在缺省情況下,應用程序運行時的當前目錄是應用程序所在的目錄。如果在應用程序中沒有調用ChDir等過程改變當前目錄的話,那就不必執行第三步,否則執行第三步的處理。

(3)        在使用到Table控件和Query控件的窗體的OnCreate事件中,把應用程序所在路徑賦值給該窗體上的每一個Table控件和Query控件。 Table1.databasename:=ExtractFilePath(application.ExeName);

2.利用配置文件存放數據路徑
此方法是在應用系統安裝或者第一次運行時把數據庫路徑信息寫入配置文件。
以后運行時把路徑信息從配置文件中讀出。配置文件的讀寫使用的是類
TiniFile、類TregIniFile和類Tregistry所提供的方法來實現。
本方法基本思路為:
(1)為了設計方便,在設計時使用數據庫別名。
(2)在發行應用程序之前,把所有的Table控件和Query空間的屬性Active都設
置為False,刪除屬性DataBase中的所有字符(即置空)。

(3)在使用到Table控件和Query控件的窗體的OnCreate事件中,把應用程序所在路徑賦值給該窗體上的每一個Table控件和Query控件。

Table1.databasename:=ExtractFilePath(application.ExeName);

3.利用數據庫別名存放數據庫路徑

要使用session動態創建數據庫別名,需要在窗體上添加一個session1組件,添加成功后,系統該窗體對應的單元接口部分的uses子句里添加一個DBTables單元。我們在動態創建和刪除數據庫別名時將用到的就是該單元定義的一個Session全局變量,而不是添加在窗體上的Session1組件。在試題庫系統的創建過程中,為了以防混淆,我們刪除了窗體上的Session1組件,這樣做對于功能的實現是沒有任何影響的。

下面代碼說明如何建立名字為“Subscriber”的別名,它的數據庫路徑為“E:/subscriber”,數據庫類型為PARADOX。

Session.ConfigMode:=cmall;//指定Session的配置模式

Session.AddStandardAlias(‘net’,’E:/ subscriber’,’PARADOX’); //創建別名為net的paradox類型的數據庫,其路徑是e:/subscriber

Session.SaveConfigFile;  //保存配置修改

如須對別名進行刪除,則先要檢查別名是否存在,如果對不存在的別名做刪除操作則會引起異常。下面代碼說明如何檢查數據庫別名“Subscriber”是否存在,如果存在則進行刪除。

 定義變量:var strAlias:TStringList; //用于保存BDE數據庫別名表

 代碼:    strAlias:=TStringList.Create;//生成TstringList類的實例

           Session.GetAliasNames(strAlias);//獲取當前所有數據庫別名

          //查找subscriber是否存在,存在返回值為-1,不存在為非-1

if (strAlias.IndexOf(' Subscriber’) <> -1) then

begin

            session.DeleteAlias(' Subscriber ');//刪除數據庫別名subscriber

  session.SaveConfigFile;  //保存

end;


 


上一篇:Delphi----永不消逝的精靈

下一篇:用Delphi開發DLL來代替8581協議控制和采集華為PSM—A10電源(二)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
狠狠干狠狠久久| 亚洲一区二区三区777| 精品magnet| 欧美老女人在线视频| 亚洲国内高清视频| 国产精品网红直播| 久久精视频免费在线久久完整在线看| 亚洲女性裸体视频| 456国产精品| 国产精品扒开腿做爽爽爽男男| 国产日韩亚洲欧美| 久久久国产影院| 国产精品91免费在线| 最近中文字幕2019免费| 欧美极品在线视频| 久久精品在线视频| 精品成人乱色一区二区| 欧美日韩精品在线播放| 欧美亚洲国产视频| 色与欲影视天天看综合网| 91在线视频成人| 国产日韩视频在线观看| 97热精品视频官网| 久久精品成人一区二区三区| 国产乱肥老妇国产一区二| 亚洲精品一区在线观看香蕉| 国产一区二区av| 亚洲国产精品一区二区三区| 91免费的视频在线播放| 日韩欧美在线一区| 福利视频一区二区| 日韩高清中文字幕| 亚洲精品一区中文字幕乱码| 亚洲天堂免费在线| 日韩av理论片| 欧美高清在线视频观看不卡| 日韩免费在线观看视频| 亚洲欧美日韩中文在线制服| 亚洲人高潮女人毛茸茸| 久久久久久91香蕉国产| 亚洲毛茸茸少妇高潮呻吟| 国产精品成人国产乱一区| 欧美多人爱爱视频网站| 久久精品成人欧美大片古装| 国产精品私拍pans大尺度在线| 国产视频一区在线| 久久国产精品首页| 国产亚洲欧美日韩一区二区| 国产精品一区二区3区| 深夜成人在线观看| 91在线观看免费高清| 色狠狠久久aa北条麻妃| 热门国产精品亚洲第一区在线| 亚洲欧美日韩天堂一区二区| 欧美性20hd另类| 亚洲人成在线电影| 日韩在线观看免费全集电视剧网站| 欧美伦理91i| 欧美亚洲伦理www| 欧美老女人在线视频| 久久99国产综合精品女同| 久久影视电视剧免费网站清宫辞电视| 亚洲国产成人在线播放| 久久伊人91精品综合网站| 欧美午夜精品伦理| 成人亲热视频网站| 欧美日韩不卡合集视频| 亚洲欧美国产精品va在线观看| 美女视频黄免费的亚洲男人天堂| 亚洲国产天堂网精品网站| 免费av一区二区| 欧美精品少妇videofree| 永久免费精品影视网站| 日韩精品在线视频美女| 欧美成人性生活| 精品亚洲一区二区三区在线观看| 一区二区三区日韩在线| 精品视频一区在线视频| 91影院在线免费观看视频| 欧美激情a在线| 中文字幕一区电影| 最近2019年好看中文字幕视频| 在线视频欧美日韩| 另类色图亚洲色图| 庆余年2免费日韩剧观看大牛| 97碰碰碰免费色视频| 日韩精品福利在线| 精品免费在线视频| 最近日韩中文字幕中文| 成人黄色免费网站在线观看| 国产做受69高潮| 亚洲性av在线| 日韩电影免费在线观看| 亚洲综合小说区| 欧美大全免费观看电视剧大泉洋| 亚洲午夜精品久久久久久性色| 国产日韩欧美在线看| 97久久久免费福利网址| 国产成人jvid在线播放| 97视频在线观看成人| 久久精品最新地址| 国产精品视频网址| 日韩美女在线观看一区| 欧美裸体男粗大视频在线观看| 成人精品网站在线观看| 国产一区二区三区视频在线观看| 亚洲第一福利视频| 亚洲无限乱码一二三四麻| 国产日韩精品电影| 日韩av综合中文字幕| 日韩成人在线视频观看| 亚洲精品美女视频| 国产在线观看精品| 在线视频日本亚洲性| 久久视频这里只有精品| 91精品久久久久久久久久入口| 成人国内精品久久久久一区| 精品久久久免费| 欧美国产日韩视频| 中文字幕亚洲欧美一区二区三区| 久久视频免费观看| 爱福利视频一区| 国产精品成人播放| 欧美视频中文字幕在线| 久久久亚洲国产天美传媒修理工| 日本sm极度另类视频| 欧美午夜精品伦理| 亚洲国内精品视频| 91爱爱小视频k| 精品高清一区二区三区| 91久久嫩草影院一区二区| 一区二区三区视频免费在线观看| 亚洲精品色婷婷福利天堂| 亚洲国产精品中文| 国产精品免费久久久久久| 亚洲精品wwww| 欧美激情一级欧美精品| 一区二区三欧美| 欧美成人免费全部观看天天性色| 日韩精品亚洲视频| 国产xxx69麻豆国语对白| 日韩中文字幕在线播放| 欧美日韩午夜视频在线观看| 成人av电影天堂| 精品性高朝久久久久久久| 亚洲精品自拍偷拍| 欧美极品少妇xxxxⅹ喷水| 欧美裸体xxxxx| 国产精品福利久久久| 91欧美精品午夜性色福利在线| 欧美日本精品在线| 亚洲精品午夜精品| 国内揄拍国内精品少妇国语| 国产精品久久77777| 欧美丰满老妇厨房牲生活| 一区二区三区国产在线观看| 亚洲成人精品av| 91在线精品播放| 久久国产精品电影| 伊人伊成久久人综合网小说| 欧美精品videos| 一区二区三区www| 亚洲91精品在线| 91在线观看免费|