<b>C++ Builder在运行时成立BDE别名</b>[VC/C++编程]
本文“<b>C++ Builder在运行时成立BDE别名</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
通过bde别名来衔接数据库,确切很便利,但是,那些没有肯定的数据库,我们却无法给它成立别名.
而大大都时刻,当我们把程序交给别人真正投入利用时,别名的途径也是不肯定的.这就要求我们在程序运行时动态衔接到数据库.
目前,假定在程序运行目录下有个通讯录friends.db,我们要通过tquery、tdatasource等控件来拜候:
本人学习编程不久,若有错误或失漏,请不吝赐教
在窗体上增添相关控件
在头文件中声明会话句柄
hdbises tmpsession;
要在程序启动时装入数据库,可以以下:
void __fastcall tmainfrm::formcreate(tobject *sender)
{
if (query1->state==dsinactive)
{
dbiinit(null);//bde初始化
dbistartsession(null,tmpsession,"");//翻开一个暂时的bde session
//设别名途径为程序所在目录,要注意前头要加上"path:"字串
ansistring strpath="path:"+extractfiledir(application->exename);
dbiaddalias(null,"tmpmyfriends",
"paradox",strpath.c_str(),false);//增添别名完成
query1->databasename="tmpmyfriends";//接下来便可如常利用了.
query1->active=true;
}
query1->sql->clear ();
query1->sql->add("select * from friends.db");
query1->open();
}
当程序关闭时,要记得释放bde占用的资源
void __fastcall tmainfrm::formclose(tobject *sender, tcloseaction &action)
{
if (query1->active )
query1->active=false;
dbiclosesession(tmpsession);//关闭当前会话
dbiexit();//放掉bde资源
}
可以阐明一下的是dbistartsession和dbiaddalias函数.
dbistartsession函数语法以下:
dbiresult dbifn dbistartsession ([pszname], phses, [pnetdir]);
此中,pszname参数是pchar范例指针,用来为近来翻开的session命名,可以是null而让bde肆意指定;phses参数则用来指定你要找开的session的句柄.pnetdir为指向network途径的指针,具体我也没有效过.
函数调用成功,则返回dbierr_none.
dbiaddalias函数语法以下:
dbiresult dbiaddalias( [hcfg], pszaliasname, pszdrivertype, pszparams, bpersistent );
此中,hcfg指定要利用的配置文件,设null则把当前session加入配置文件;pszdrivertype指明数据库驱动范例,null表示为standard型.bpersitent为bool值,指定能否一向保存别名到配置文件中,假如为
false则要加入的别名只有当前session中利用.函数如调用成功,返回dbierr_none.
以上是“<b>C++ Builder在运行时成立BDE别名</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |