ap:TStringList;
{字符串列表变量}
answer:Integer;
strDir : string;
begin
ap:=TStringlist.Create;
Session.GetAliasNames(ap);
{取得别名列表}
if (ap.IndexOf('MachineAdmin')=-1) then
{判断别名是否存在}
begin
{ answer:=Application.MessageBox('别名Cntssamp不存在,现在创建吗?','BDE信息窗口',mb_OKCancel);
if answer=IDCANCEL then
begin
ap.Free;
Exit;
end;
}
strDir := GetCurrentDir;
//路径你自己定义
Session.AddStandardAlias('sbd',strDir,'Paradox');
//
Session.SaveConfigFile;
{BDE配置文件存盘}
ap.Clear;
{取得别名Cngzsamp中的所有表格名称列表}
end ;
ap.free;
{释放变量ap}
下面再给你一段代码, 这是在BDE建立SQL server的别名的。
var
GetAlias: TStringList;
ServerStr: String;
begin
serverStr:='MyServer';
//你的sql server所在的服务器的名称, 也可用IP地址
//建立别名
GetAlias:=TStringList.Create;
Session.GetAliasNames(GetAlias);
//取得别名列表。
if GetAlias.IndexOf(AliName)<>-1 then
begin
Session.DeleteAlias(AliName);
Session.SaveConfigFile;
end;
try
Session.AddStandardAlias(AliName,'','MSSQL');
Session.SaveConfigFile;
//modify para
GetAlias.Clear;
GetAlias.Add('User name=sa');
GetAlias.Add('SQLQRYMODE=SERVER');
GetAlias.add('Server name='+ServerStr);
GetAlias.add('DataBase name=XXXyz');
Session.ModifyAlias(AliName,GetAlias);
Session.SaveConfigFile;
with DataBase1do
begin
Connected:=False;
LoginPrompt:=False;
AliasName:=AliName;
DatabaseName:='XXX_SQL';
Params.Clear;
Params.Add('User Name=sa');
Params.Add('Password=');
Connected:=True;
LoginDB:=True;
end;
except
Application.MessageBox('系统建立目标失败,请确定服务器已运行。','错误',MB_ICONERROR+mb_OK);
Application.Terminate;
end;
对于单机应用。建议只建立一个目录存放数据,如data目录,这样别名只做一个便可。
//使得数据库应用系统可以安装在任何目录
只要能得到你存放数据的目录,动态建立别名便可。
ExtractFileDir(Application.ExeName)+'/Data'
如果用SQL Server的话,数据存放在服务器上位置是固定的,可以上程序开始时
建立别名,结束时删除它。
:
//Create current prog's alias ;
GetDir(0,s);
AliName:='';
for i:=1 to Length(s)do
if (Copy(s,i,1)<>':') and (Copy(s,i,1)<>'/') and (Copy(s,i,1)<>' ')then
AliName:=AliasName+Copy(s,i,1);
.......
if GetAlias.IndexOf(AliName)=-1 then
try
Session1.AddStandardAlias(AliName,
ExtractFileDir(Application.ExeName)+'/Data','Paradox');
Session1.SaveConfigFile;
except
Application.MessageBox('建立别名失败!','错误',MB_ICONERROR+mb_OK);
Application.Terminate;
end;