Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Query con ADO. (https://www.clubdelphi.com/foros/showthread.php?t=65329)

amerika111 05-12-2009 22:00:57

Query con ADO.
 
hi.. hola a todos. mi asunto es el siguiente. trato de hacer una consulta a una tabla que tengo en sql server ya tengo conexion con ADO y no se como realizar una consulta

trato de hacer esto

select idusuario, nombre, pass from usuarios where idusuario=usuario and pass=contrasenia

y que si encuentra una que coincida con la consulta poder colocar el nombre a una variable string

var
nombreusuario:string;

nombreusuario:=nombre ----- que este es el que se selecciono por el id coincidente con el idusuario.

pero no veo como hacerlo

si el query seria
adoquery.sql._____(sentencia sql); en ese espacio no se que va y como despues asignar el nombre al nombre de usuario.

les agradeceria mucho su ayuda..

voldemmor 05-12-2009 22:37:00

text
 
Hola no he trabajado con componentes ado la verdad, uso zeos pero creo que podria ser algo asi. creo que son parecidas estas sentencias en los dos componentes.

Código Delphi [-]
adoquery.sql.text :='sentencia';
adoquery.open;
if not adoquery.eof then cadena:=adoquery.fields[0].asstring;
adoquery.close;
espero te sirva de algo

amerika111 06-12-2009 00:39:18

Cita:

Empezado por voldemmor (Mensaje 348281)
Hola no he trabajado con componentes ado la verdad, uso zeos pero creo que podria ser algo asi. creo que son parecidas estas sentencias en los dos componentes.


Código Delphi [-]adoquery.sql.text :='sentencia';
adoquery.open;
if not adoquery.eof then cadena:=adoquery.fields[0].asstring;
adoquery.close;



espero te sirva de algo

hi.. mm probe como me lo indicast pero no me funciono no recupera nada en la cadena. que en este caso seria el nombre de usuario que se guardara en cadena.
por que esto es lo que coloque en
adoquery.sql.text:='select nombre from Usuarios where idnombre='+ quoteStr(idnombre);

old_martinez 07-12-2009 14:25:33

No se entiende bien lo que pedis... mas o menos esto hace la consulta para retornar el nombre de tu usuario si coinciden su id y su contraseña.
Luego se guarda el valor resultante en la variable nombreusuario.

Código Delphi [-]

adoquery.sql.text := 
  ' select nombre ' + 
  ' from usuarios ' +
  ' where '+
  '    idusuario=' + QuotedStr(usuario) + ' and ' +
  '    pass=' + QuotedStr(contrasenia);

adoquery.Open;

If ( adoquery.RecordCount > 0 ) then
  nombreusuario:= adoquery.FieldByName('nombre').asstring;

amerika111 09-12-2009 17:37:44

si se que lo puse algo confuso sorry. pero tengo este codigo....

Código:

procedure TfIdentificacion.Button1Click(Sender: TObject);
var idnombre,contrasenia: String;
 
begin

ADOcomparacion.SQL.Clear;
idnombre:=LowerCase(fIdentificacion.txtUsuario.Text);
contrasenia:=fIdentificacion.txtContrasenia.Text;
ADOcomparacion.SQL.Add('select idnombre, contrasenia from Tusuarios where idnombre='+ quotedStr(idnombre) +' and contrasenia='+quotedStr(contrasenia) );
ADOcomparacion.Active:=true;
 
 if (ADOcomparacion.RecordCount=1) then
  begin
    fPrincipal.ShowModal;
    fIdentificacion.Close;
    txtUsuario.Text:= '';
    txtContrasenia.Text:= '';
  end
  Else
  begin
    MsgTitle := 'Acceso Denegado';
    MsgX := 550;
    MsgY := 286;
    Application.MessageBox('Datos Incorrectos', PChar(MsgTitle), MB_ICONSTOP);
    txtUsuario.Text:= '';
    txtContrasenia.Text:= '';
    txtUsuario.SetFocus;
  end
end;

esto lo uso para que el usuario se autentifique pero de la consulta anterior en la que compara lo que se ingresa tanto como idusuario y la contraseña quiero obtener el nombre del usuario y colocarlo en una variable string que se llame nombreusuario.

espero que si me haya explicado esta vez.. Agradeceria mucho su ayuda

old_martinez 09-12-2009 19:15:06

Algo así?

Código Delphi [-]
procedure TfIdentificacion.Button1Click(Sender: TObject);
var 
  idnombre,contrasenia: String;
  NombreUsuario : String;
 
begin

  ADOcomparacion.SQL.Clear;
  idnombre:=LowerCase(fIdentificacion.txtUsuario.Text);
  contrasenia:=fIdentificacion.txtContrasenia.Text;
  ADOcomparacion.SQL.Add('select idnombre, contrasenia from Tusuarios where idnombre='+ quotedStr(idnombre) +' and contrasenia='+quotedStr(contrasenia) );
  
  //ADOcomparacion.Active:=true;
  ADOcomparacion.Open;
 
 if (ADOcomparacion.RecordCount=1) then
  begin
    NombreUsuario:= ADOcomparacion.FieldByName('idNombre').AsString;
    fPrincipal.ShowModal;
    fIdentificacion.Close;
    txtUsuario.Text:= '';
    txtContrasenia.Text:= '';
  end
  Else
  begin
    MsgTitle := 'Acceso Denegado';
    MsgX := 550;
    MsgY := 286;
    Application.MessageBox('Datos Incorrectos', PChar(MsgTitle), MB_ICONSTOP);
    txtUsuario.Text:= '';
    txtContrasenia.Text:= '';
    txtUsuario.SetFocus;
  end
end;


La franja horaria es GMT +2. Ahora son las 05:24:07.

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