Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   error xsqlda index out of range en ventana login ayuda !!!!!! (https://www.clubdelphi.com/foros/showthread.php?t=62774)

manueltp 14-01-2009 04:25:10

error xsqlda index out of range en ventana login ayuda !!!!!!
 
hola que tal amigos aki de nuevo ....
con una duda mas .....
me sale el error de "xsqlda index out of range".....

les paso el codigo para que me chequen de favor haber que hago mal::

Código Delphi [-]
procedure TFLogin.BtnAceptarClick(Sender: TObject);
begin
   LoginOK := False;
   QryEntrar.Params.ParamByName('nom').AsString:= EUsuario.Text;
   QryEntrar.Active:= True;
   EUsuario.Text:= QryEntrar.Fields[0].AsString;
   If QryEntrar.RecordCount < 1 then
      Begin
         Cuenta := Cuenta + 1;
         MessageDlg('Usuario no encontrado',mtError, [mbOK], 0);
         EUsuario.Text := '';
         EClave.Text := '';
         QryEntrar.Active := False;
         If Cuenta = 3 then Close;
      end
   else
        If QryEntrarCLAVEU.AsString = EClave.Text then
           Begin
              LoginOk := True;
              Usuario := QryEntrarNOMBREU.AsString;
              QryEntrar.Active := False;
              Close;
           end
        else
            Begin
               Cuenta := Cuenta + 1;
               MessageDlg('Clave Inválida',mtError, [mbOK], 0);
               EClave.Text := '';
               QryEntrar.Active := False;
               If Cuenta = 3 then Close;
            end
end;

tengo un TIBQuery con un parametro..

se los agradeceria demasiado ... me interesa demasiado para el sistema que estoy realizando...:confused::confused::confused::confused::confused::confused::confused:

roman 14-01-2009 04:36:28

Sería bueno que indicaras en qué linea te da el error. Así lo único que se me ocurre es que al activar el query:

Código Delphi [-]
QryEntrar.Active:= True;
EUsuario.Text:= QryEntrar.Fields[0].AsString;

quizá no estés obteniendo ningún registro, por lo que Fields estará vacío. Checa la propiedad QryEntrar.IsEmpty o QryEntrar.RecordCount para asegurarte que la consulta te está devolviendo registros.

// Saludos

Caro 14-01-2009 04:45:35

Hola manueltp, cual es la consulta que tienes en QryEntrar como te dice el amigo Roman sería bueno que nos indicaras la línea donde te da el error, ahora si el query no devuelve resultados y se hace esto QryEntrar.Fields[0].AsString; debería devolverte vacío, pero es bueno que controles con IsEmpty como te ha indicado Roman.

Saluditos

manueltp 14-01-2009 22:41:53

gracias por sus respuestas...

en el query hagoo una consulta a todos los registros....
que en mi caso solo tengo un registro

EL SQL es :
select * from USUS

y con esto: If QryEntrar.RecordCount < 1 then

no obtengo nada de registros??
y que al hacer esto: QryEntrar.Active:= True;
no se activa la consulñta y obtengo el dato???

manueltp 14-01-2009 22:43:11

otra cosa que se me paso...
el parametro nom debe ser de entrada verdad y el valor por defecto como iria???

roman 15-01-2009 01:30:29

¿Y el parámetro? Porque la consulta que pones no lleva ninguno.

// Saludos

manueltp 15-01-2009 02:41:19

muchisimas gracias roman por recordarme eso , no lo tomaba en cuenta...problema resuelto ,, no tenia el parametro en la consulta..
cosas de novatos verdad..

y ahora no puedo hacer que se muestre la ventana principal del programa....
y es con el mismo codigo que les mostre arriba.....

en los forms: pongo primero el data module, luego la ventana principal y enseguida la ventana de login.....para la ejecucion.
pero al logearme se cierra la ventana de login y no entro a la ventana principal..... en la ventana principal tengo este codigo:

Código Delphi [-]
procedure TFMenuprincipal.FormCreate(Sender: TObject);
begin
  FLogin:=TFLogin.Create(self);
   try
     FLogin.ShowModal;
   finally
     FLogin.Free;
   end;
end;

o en que parte del codigo de la ventana de login ....
creo la ventana principal y con cual codigo seria::
se los agradeceria demasido
:mad::mad:

Caro 16-01-2009 04:03:12

Cita:

Empezado por manueltp (Mensaje 334540)
y ahora no puedo hacer que se muestre la ventana principal del programa....
y es con el mismo codigo que les mostre arriba.....

en los forms: pongo primero el data module, luego la ventana principal y enseguida la ventana de login.....para la ejecucion.
pero al logearme se cierra la ventana de login y no entro a la ventana principal..... en la ventana principal tengo este codigo:


Código Delphi [-]
procedure TFMenuprincipal.FormCreate(Sender: TObject);
begin
  FLogin:=TFLogin.Create(self);
   try
     FLogin.ShowModal;
   finally
     FLogin.Free;
   end;
end;




o en que parte del codigo de la ventana de login ....
creo la ventana principal y con cual codigo seria::
se los agradeceria demasido

Hola de nuevo, tu "main form" tiene que ser tu FMenuprincipal y tal como lo estas haciendo en el Oncreate crear FLogin una vez que cierres tu FLogin debería terminar de cargarse tu form principal.

Saluditos


La franja horaria es GMT +2. Ahora son las 19:27:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi