Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Comparar Tedit con campo en BD(oracle)Zeos Lib (https://www.clubdelphi.com/foros/showthread.php?t=78942)

gersojn 28-05-2012 18:43:56

Comparar Tedit con campo en BD(oracle)Zeos Lib
 
Hola, les comento que estoy iniciando una aplicacion con conexion a BD, pero no he trabajo mucho con Zeos Lib, y tengo un problema, necesito crear un login de usuarios, para lo cual efectue un formulario con un usuario y password, al igual en la BD con su respectiva tabla.

Realize la conexion, asocie un Ztable a la conexion(con la tabla de usuarios) y luego esta ultima la asocie a un datasource, lo que se me ocurrio fue hacer un query a la BD y comparar los datos que ingrese el usuario en los Tedit con los datos almacenados en la BD, el problema es que no se como hacer exactamente eso.

Si alguien me podria dar alguna sugerencia de ello o una forma alterna a hacer esto le agradeceria mucho, de antemano muchas gracias.
Saludos.

(Trabajando con DelphiXE, ZeosLib y Oracle XE, bajo Windows 7)

mightydragonlor 28-05-2012 18:47:23

es mejor que hagas un select en un TZQuery y luego preguntas si el TZQuery.recordcount = 0 es por que la consulta no arrojó nada.

Saludos.

gersojn 28-05-2012 19:29:22

Estoy intentando realizar lo que me dices, pero al efectuar la consulta me salta un error de SQL Error: OCI_ERROR:ORA-00904

El codigo es el siguiente
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
sql: string;
begin
  Query.Close;
  Query.SQL.Clear;
  sql:='SELECT ID_USUARIO,PASSWORD FROM USUARIO WHERE ID_USER=:'+'"' +Edit1.Text+'"' + 'and PASSWORD=:'+'"'+Edit2.Text+'"';
  Query.SQL.Add(sql);
  Query.Open;
end;

He ingresado un usuario y password que no existe en la BD, como tambien un usuario y password que existe en la misma, y en ambos casos me muestra el mismo error. De ante mano muchas gracias por la ayuda.
Trabajo con Oracle XE.

gersojn 28-05-2012 21:51:06

Solucionado
 
Ya lo solucione, gracias por la ayuda mightydragonlor , posteo el codigo, por si alguien busca un login de usuarios con Oracle XE, Delphi y ZeosLib(en los if, solo colocan la funcion que desean que realize al validar el logeo de un usuario)

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
usuario,password: string;
begin
  Query.Close;
  Query.SQL.Clear;
  Query.Active:=False;
  usuario:= Edit1.Text;
  password:= Edit2.Text;
  Query.SQL.Add('SELECT ID_USUARIO,PASSWORD FROM USUARIO WHERE ID_USUARIO='+quotedstr(usuario)+'and PASSWORD='+quotedstr(password));
  Query.Active:=True;
  Query.Open;
  if Query.RecordCount = 0 then
  begin
    ShowMessage('no esta en BD');
  end;

  if Query.RecordCount <> 0 then
  begin
    ShowMessage('si esta en BD');
  end;

end;


La franja horaria es GMT +2. Ahora son las 03:05:04.

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