Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   no value given for one or more required parameters (https://www.clubdelphi.com/foros/showthread.php?t=77425)

look 24-01-2012 23:12:18

no value given for one or more required parameters
 
hola amigos tengo la siguiente consulta:
Código Delphi [-]
    with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add('SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS');
      SQL.Add('WHERE CLAVE = :CLAVE AND USUARIO = :USUARIO');
      Parameters.ParamByName('CLAVE').Value := edtClave.Text;
      Parameters.ParamByName('USUARIO').Value := EdtUsuario.Text;
      Active := True;
     end;

pero me lanza el siguiente error:

Código:

no value given for one or more required parameters

que puedo hacer?

Caral 24-01-2012 23:16:44

Hola
Yo no usaria los nombres de los campos en los parametros.
Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS ');
      SQL.Add(' WHERE CLAVE = :CLAV AND USUARIO = :USUA ');
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;

O asi>

Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS ');
      SQL.Add(' WHERE CLAVE = :CLAV OR USUARIO = :USUA ');
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;

A ver que pasa.:)
Saludos

look 24-01-2012 23:19:51

Cita:

Empezado por Caral (Mensaje 423650)
Hola
Yo no usaria los nombres de los campos en los parametros.
Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add('SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS');
      SQL.Add('WHERE CLAVE = :CLAV AND USUARIO = :USUA');
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;

O asi>

Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add('SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS');
      SQL.Add('WHERE CLAVE = :CLAV OR USUARIO = :USUA');
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;

A ver que pasa.:)
Saludos


hola amigo, pues no me ha funcionado...

Caral 24-01-2012 23:23:27

Hola
Mira esto:
Antes de copiar y pegar solo ponle la linea del mensaje y revisa el dato, luego copia y pega el codigo completo y revisalo otra vez.
Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS ');
      SQL.Add(' WHERE CLAVE = :CLAV AND USUARIO = :USUA ');
      Showmessage(qryConsulta.sql.text); // aqui 
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;
Saludos

MartinS 24-01-2012 23:31:09

Muy básica mi respuesta, pero verificaste que los nombres de los campos estén bien escritos?.. Saludos

look 24-01-2012 23:31:15

Cita:

Empezado por Caral (Mensaje 423652)
Hola
Mira esto:
Antes de copiar y pegar solo ponle la linea del mensaje y revisa el dato, luego copia y pega el codigo completo y revisalo otra vez.
Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.Clear;
      SQL.Add(' SELECT NUM_USUAR,NOMBRE,CLAVE,USUARIO FROM USUARIOS ');
      SQL.Add(' WHERE CLAVE = :CLAV AND USUARIO = :USUA ');
      Showmessage(qryConsulta.sql.text); // aqui 
      Parameters.ParamByName('CLAV').Value := edtClave.Text;
      Parameters.ParamByName('USUA').Value := EdtUsuario.Text;
      Active := True;
     end;
Saludos

amigo ya le he dado vueltas y vueltas pero no me funciona :(

Caral 24-01-2012 23:32:43

Hola
Amigo, estas seguro de que no tienes campos persistentes en el query ?.
Dale doble click al query y revisa los campos que tienes en esa pantallita.
Saludos

Caral 24-01-2012 23:37:59

Hola
Aparte de todo, no me gusta ni el add y el parambyname :)
Código Delphi [-]
with qryConsulta  do
    begin
      Active := False;
      SQL.text:= ' SELECT NUM_USUAR, NOMBRE, CLAVE, USUARIO FROM USUARIOS '+
                 ' WHERE CLAVE = :C AND USUARIO = :U ';
      Parameters[0].Value := edtClave.Text;
      Parameters[1].Value := EdtUsuario.Text;
      Active := True;
     end;
Saludos


La franja horaria es GMT +2. Ahora son las 03:47:01.

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