国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ Builder在運行時創建BDE別名

2019-09-06 23:33:31
字體:
來源:轉載
供稿:網友

                        通過bde別名來連接數據庫,確實很方便,然而,那些沒有確定的數據庫,我們卻無法給它創建別名。
而大多數時候,當我們把程序交給別人真正投入使用時,別名的路徑也是不確定的。這就要求我們在程序
運行時動態連接到數據庫。
  現在,假設在程序運行目錄下有個通訊錄friends.db,我們要通過tquery、tdatasource等控件來訪問:
本人學習編程不久,如有錯誤或失漏,請不吝賜教

在窗體上添加相關控件
在頭文件中聲明會話句柄
hdbises tmpsession;

要在程序啟動時裝入數據庫,可以如下:
void __fastcall tmainfrm::formcreate(tobject *sender)
{
/tif (query1->state==dsinactive)
/t/t{
/t/t
/t/tdbiinit(null);//bde初始化
/t/tdbistartsession(null,tmpsession,"");//打開一個臨時的bde session
/t/t//設別名路徑為程序所在目錄,要注意前頭要加上"path:"字串
        ansistring strpath="path:"+extractfiledir(application->exename);
/t/tdbiaddalias(null,"tmpmyfriends",
/t/t/t"paradox",strpath.c_str(),false);//增加別名完成
/t/tquery1->databasename="tmpmyfriends";//接下來就可如常使用了。
/t/tquery1->active=true;

/t/t}
     
      query1->sql->clear ();
      query1->sql->add("select * from friends.db");
      query1->open();
}

  當程序關閉時,要記得釋放bde占用的資源
void __fastcall tmainfrm::formclose(tobject *sender, tcloseaction &action)
{
/tif (query1->active )
/t/tquery1->active=false;
/tdbiclosesession(tmpsession);//關閉當前會話
/tdbiexit();//放掉bde資源

}      

    可以說明一下的是dbistartsession和dbiaddalias函數。
dbistartsession函數語法如下:
dbiresult dbifn dbistartsession ([pszname], phses, [pnetdir]);
其中,pszname參數是pchar類型指針,用來為最近打開的session命名,可以是null而讓bde任意指定
;phses參數則用來指定你要找開的session的句柄。pnetdir為指向network路徑的指針,具體我也沒有用過。
函數調用成功,則返回dbierr_none。
/tdbiaddalias函數語法如下:
dbiresult dbiaddalias( [hcfg], pszaliasname, pszdrivertype, pszparams, bpersistent );
其中,hcfg指定要使用的配置文件,設null則把當前session加入配置文件;pszdrivertype指明數據
庫驅動類型,null表示為standard型。bpersitent為bool值,指定是否一直保存別名到配置文件中,如果為
false則要加入的別名只有當前session中使用。函數如調用成功,返回dbierr_none。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 锡林郭勒盟| 临洮县| 吉林省| 安徽省| 岳阳县| 炎陵县| 盘锦市| 仪征市| 重庆市| 北宁市| 定南县| 石棉县| 祥云县| 深圳市| 胶南市| 淮安市| 运城市| 加查县| 得荣县| 桐庐县| 荔浦县| 张家口市| 商河县| 大方县| 堆龙德庆县| 乐山市| 青阳县| 北川| 崇文区| 昌图县| 亚东县| 淅川县| 高雄市| 自治县| 建平县| 英山县| 长寿区| 兴宁市| 习水县| 寻乌县| 介休市|