可以动态改变bde的:
var  BdeParams     : TStringList ;
begin
  try
    Session.DeleteAlias('databasename');
    Session.SaveConfigFile;
  except
    showmessage('error');
    exit ;
  end ;
  BdeParams := TStringList.Create;
  try
    BdeParams.Clear;
    BdeParams.Add('SERVER NAME='+Trim(edt1.Text)) ;
    BdeParams.Add('USER NAME='+Trim(edt2.Text)) ;
    BdeParams.Add('DATABASE NAME= '+Trim(edt3.Text)) ;
    BdeParams.Add('SQLQRYMODE=SERVER') ;
    Session.AddAlias(Trim(edt3.Text),'MSSQL', BdeParams) ;
    Session.SaveConfigFile;
  except
    showmessage('error');
    exit ;
  end ;
  try
    Database1.Connected := False ;
    Database1.AliasName    := '' ;
    Database1.DatabaseName := '' ;
    Database1.Params.Clear ;
    Database1.Params.Add('USER NAME=""')                      ;
    Database1.Params.Add('PASSWORD='+' ') ;
    Database1.Connected := True ;
  except
    exit ;
    MessageBox(handle,'连接不成功!','失败',mb_ok);
  end ;
//