爱包子 2007-11-19 10:17
如何动态设置BDE别名的说明
这个问题其实是考察程序员对BDE的TSession组件的熟悉程度,一个数据库程序的建立,即使你没有显式的添加TSession组件,系统中依然存在一个名字为Session的TSession对象,你可以在任何位置调用该对象的方法和属性。TSession类的很多方法可以帮助我们的应用程序获取系统BDE环境,下面介绍一个代码片断用以添加一个BDE别名:
var
BDEList : TStringList ;
...
begin
...
BDEList := TStringList.Create () ;
try
Session.GetAliasNames(BDElist) ; // 获取系统所有BDE别名列表
if BDEList.IndexOf('DragonPC')= -1 then begin // 如果没有我们的BDE别名"DragonPC"
BDEList.Clear ;
BDEList.Add('SERVER NAME=' 'SQLServerName')); // 数据库服务器名称
BDEList.Add('DATABASE NAME=master') ; // 默认数据库
BDEList.Add('USER NAME=sa'); // 用户名
Session.AddAlias('DragonPC', 'MSSQL', BDEList) ; // 添加一个MSSQL类型的BDE别名
ShowMessage('系统即将建立BDE别名!') ;
Session.SaveConfigFile() ; // 存储BDE配置
end;
finally
BDEList.Free ;
end;
这么简单,用户就可以随时建立、删除和修改BDE别名(有兴趣的朋友可以查看TSession组件的源代码,看看调用了哪些BDE函数)。另外像DeleteAlias,ModifyAlias,GetDatabaseNames,GetDriverNames,GetStoredProcNames,GetTableNames,GetPassword等等TSession类的方法,使用起来非常简单,通过Delphi的随机帮助,读者可以试着自己调用一下看看。通过对Session的灵活应用,再配合我下面将要提到的扑捉SQL异常的技巧,你完全可以写一个媲美SQL Explorer的通用数据库查询工具。