Ver Mensaje Individual
  #12  
Antiguo 13-08-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Empecemos por el primer error... quita la función del form Login y declarala como un método de DataModule1:
Código Delphi [-]
...
uses ..., IBQuery;
...
type
  TDataModule1 = class(TDataModule)
    IBDatabase1: TIBDatabase;
    IBTransaction1: TIBTransaction;
    IBQPassword: TIBQuery;
    //...
  private
    //...
  public
    function LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
  end;

var
  DataModule1: TDataModule1;

implementation  

function TDataModule1.LoginAccepted(qy: TIBQuery; const nam, pwd: string): Boolean;
begin
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('SELECT * FROM USUARIO');
  qy.SQL.Add('WHERE NOMBRE = :NOMBRE');
  qy.ParamByName('NOMBRE').AsString := nam;
  qy.Open;
  Result := not qy.IsEmpty and (qy.FieldByName('CLAVE').AsString = pwd);
  qy.Close;
end;
...
Estando la unidad de DataModule1 incluída en el form "Login", llama a la función de este modo:
Código Delphi [-]
procedure TLogin.btnAceptarClick(Sender: TObject);
begin
  if not DataModule1.LoginAccepted(DataModule1.IBQPassword, EditUsuario.Text, EditPassword.Text) then
    raise Exception.Create('El usuario o la contraseña son inválidos.');
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita