在程序中创建: procedure TDm1.ChangeAlias; var AParams: TStringList; Dir: string; begin AParams := TStringList.Create; Session.GetAliasNames(AParams); {取得别名列表} if AParams.IndexOf('Jjgz')<>-1 then {判断别名是否存在,-1表示不存在} begin try // get the current PATH parameter Session.GetAliasParams('Jjgz',AParams); Dir := Copy(AParams.Strings[0],6,255); // get the new PATH parameter if Dir<>datapath then begin // Update the alias parameters AParams.Clear; AParams.Add('PATH=' + datapath); Session.ModifyAlias('Jjgz',AParams); Session.SaveConfigFile; end; finally AParams.Free; end; end else begin Session.AddStandardAlias('Jjgz',datapath,'Paradox'); Session.SaveConfigFile; {BDE配置文件存盘} AParams.Free; end; Application.ProcessMessages; end;
procedure TDm1.ChangeAlias;
var
AParams: TStringList;
Dir: string;
begin
AParams := TStringList.Create;
Session.GetAliasNames(AParams); {取得别名列表}
if AParams.IndexOf('Jjgz')<>-1 then {判断别名是否存在,-1表示不存在}
begin
try
// get the current PATH parameter
Session.GetAliasParams('Jjgz',AParams);
Dir := Copy(AParams.Strings[0],6,255);
// get the new PATH parameter
if Dir<>datapath then begin
// Update the alias parameters
AParams.Clear;
AParams.Add('PATH=' + datapath);
Session.ModifyAlias('Jjgz',AParams);
Session.SaveConfigFile;
end;
finally
AParams.Free;
end;
end
else begin
Session.AddStandardAlias('Jjgz',datapath,'Paradox');
Session.SaveConfigFile; {BDE配置文件存盘}
AParams.Free;
end;
Application.ProcessMessages;
end;
以及注册表内的HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine下的所有键值
别名你可用Session的AddAlias等方法来实现增加及修改
当然还包括SQL等的客户端文件
UserName, SetPassWord: String): Boolean;
var
ParamList : TStringList;
begin
Result := False;
ParamList := TStringList.Create;
try
ParamList.Clear;
ParamList.Add('SERVER NAME=' + ServerName);
ParamList.Add('Database NAME=' + DataBaseName);
ParamList.Add('USER NAME=' + UserName);
ParamList.Add('PASSWORD=' + SetPassWord);
if Session.IsAlias(AliasName) then
begin
Session.ModifyAlias(AliasName,ParamList);
end
else
begin
Session.AddAlias(AliasName,'MSSQL',ParamList);
end;
Session.SaveConfigFile;
except
ParamList.free;
Exit;
end;
ParamList.free;
Result:=True;
end;
asl.Clear ;
asl.Add ('Driver Name= MSSQL');
asl.Add ('Server Name= ' + svrname);
asl.Add ('Database Name= ' + Dname);
asl.Add ('User Name= ' + Username);
asl.Add ('sqlqrymode=local'); if not Session.IsAlias ('STJ') then
begin
try
Session.AddAlias ('STJ','MSSQL',ASL);
finally
asl.Free ;
end;
end
else if Session.IsAlias ('STJ') then
begin
try
Session.ModifyAlias ('STJ',ASL);
finally
asl.Free ;
end;
end;
Application.CreateForm(TDm, Dm); with Dm.SumdataBase do
begin
IF Connected = true then
Connected := false; aliasname := 'STJ';
params.Clear ;
params.Add ('server name=' + svrname);
params.Add ('database name=' + Dname);
params.Add ('user name=' + lname);
params.Add ('password=' + lword);
loginprompt := false;
keepconnection := true; try
Connected := true;
except
application.MessageBox (pchar('无法启动数据库,请检查数据服务器是否已经启动!'),Pchar('错误'),mb_ok);
application.Terminate ;
exit;
end;
end;
procedure Set_MSSQL_Alias( snAlias, ServerName, DbName, UserName, Password: string);
var
Env: DBIEnv;
Result: DBIResult;
sError: string;
sParams: string;begin
with Env do begin
StrPCopy(szWorkDir,pchar(''));
StrPCopy(szIniFile,'');
bForceLocalInit := True;
StrPCopy(szLang,'');
StrPCopy(szClientName,'Tony');
end; sParams := 'DATABASE NAME:' + DbName +'; ';
sParams := sParams + 'HOST NAME:'+ ServerName + '; ';
sParams := sParams + 'USER NAME:'+ UserName + '; ';
sParams := sParams + 'SERVER NAME:' + ServerName;
if DbiInit(@Env) <> DBIERR_NONE then
raise Exception.create('不能初始化数据库,别名创建失败!');
Result := DbiAddAlias( nil, pchar(snAlias), pchar('MSSQL'), pchar(sParams), true);
case Result of
DBIERR_NONE:
sError := '';
DBIERR_NAMENOTUNIQUE:
sError := '别名已经存在!创建失败。'
else
sError := '数据库连接别名创建失败,未知原因!';
end;
if sError <> '' then
raise Exception.create(sError);
Session.SaveConfigFile;
if DbiExit <> DBIERR_NONE then
raise Exception.create('关闭数据引擎失败!');end;
请把.IWZ和相关的数据库文件发到[email protected]
配置BDE注册的代码: ///////跟Cobi(小新)学的
procedure InitBde;
var
DataDirectory : string;
ARegistry : TRegistry;
begin
DataDirectory := ExtractFilePath( Application.ExeName );
DataDirectory := DataDirectory+'bde\';
ARegistry := TRegistry.Create;
with ARegistry do {创建一个TRegistry对象实例 }
begin
RootKey := HKEY_LOCAL_MACHINE;{指定根键为HKEY_LOCAL_MACHINE}
if not OpenKey( 'Software\Borland\BLW32', False ) then
begin
// showmessage('key 1'); {写入BDE语言驱动程序所在的目录,即当前程序目录 }
OpenKey( 'Software\Borland\BLW32', True );
WriteString( 'BLAPIPATH', DataDirectory );
end;
CloseKey; {关闭主键,同时将信息写入注册表}
RootKey := HKEY_LOCAL_MACHINE;
if not OpenKey('Software\Borland\Database Engine',False) then
begin
// showmessage('key 2');
OpenKey('Software\Borland\Database Engine',True);
WriteString( 'DLLPATH', DataDirectory );
end;
CloseKey; {关闭主键,同时将信息写入注册表}
Destroy; {释放内存 }
end;
end;
如果使用IS制作的,请把.iwz文件和相关数据库(一个字段就可以了)发到[email protected]