Ver Mensaje Individual
  #15  
Antiguo 12-06-2015
josepicd josepicd is offline
Miembro
 
Registrado: jun 2015
Posts: 57
Reputación: 12
josepicd Va por buen camino
He encontrado dos soluciones al problema, las expongo para ver que opinais.

1.- Puesto que utilizo una base de datos fisica (Access) compruebo que exista.
Código Delphi [-]
procedure TdmMatTaller.adoConnectionWillConnect(Connection: TADOConnection;
  var ConnectionString, UserID, Password: WideString;
  var ConnectOptions: TConnectOption; var EventStatus: TEventStatus);
var cs : WideString;
begin
  cs := Copy(ConnectionString, Pos( WideString('Data Source='), ConnectionString)+12, length(ConnectionString));
  cs := Copy( cs, 0, Pos(';', cs)-1);
  if not fileexists( cs) then abort;
end;

2. Esta segunda opcion es la que voy a implementar ya que me parece mas elegante y no depende de un fichero o ruta.
Código Delphi [-]
TdmMatTaller = class(TDataModule)
  private
    _lcreatingdatamodule : Boolean;
  public
    constructor Create(AOwner: TComponent); override;
  end;


constructor TdmMatTaller.Create(AOwner: TComponent);
begin
  _lcreatingdatamodule := true;
  inherited create( AOwner);
  _lcreatingdatamodule := false;
end;


procedure TdmMatTaller.adoConnectionBeforeConnect(Sender: TObject);
begin
  if _lcreatingdatamodule then abort;
end;
Responder Con Cita