Pregunta

Estoy tratando de conectarme a un DB Interbase en tiempo de ejecución a través del BDE. Estoy tratando de hacer esto en un proyecto sin forma (pero no en una aplicación de consola). El alias es conocido. Recupero el alias del registro. Ejemplo: Myalias.

//create alias params list  
AParams:= TStringList.Create;  

//create a session to get alias parameters  
ASession:= TSession.Create(nil);  
ASession.SessionName := 'MainSession';  
try  
 ASession.GetAliasParams(tmpAlias, AParams);  
finally  
 ASession.Free;  
end;  


//connect to database 
dbMain:= TDatabase.Create(nil);  
with dbMain do  
begin  
 //AliasName:= 'MyAlias';  
 DatabaseName:= 'test';  
 LoginPrompt:= False;  
 Params.Assign(AParams);  
 try  
  Connected:=True;  
  if Connected then ShowMessage('Connected!') else ShowMessage('Failed to Connect!');    
 finally  
  Free;  
 end; //try  
end;//with  

//free alias params list  
AParams.Free;

De todos modos, no se parece a la sesión. GetParams realmente obtiene la contraseña. ¿Cómo obtengo la contraseña? ¿Hay alguna forma de obtener toda la información de conexión del BDE y hacer la conexión si conozco el alias? Prefiero no codificar el nombre de usuario y la contraseña en caso de que el cliente los cambie en el futuro.

¿Fue útil?

Solución

Shane, si pudiera obtener la contraseña de la base de datos solo conociendo el alias, toda la seguridad de la base de datos no tendrá sentido. Por tanto, la respuesta es no , no puede recuperar esta información solo conociendo el alias BDE. La forma de conectarse a una base de datos con una protección de contraseña es solicitar el usuario y la contraseña al usuario final o almacenar esta información en un archivo de configuración cifrado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top