Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Problemas con el TADOQuery (https://www.clubdelphi.com/foros/showthread.php?t=62628)

Alexandro 05-01-2009 21:02:30

Problemas con el TADOQuery
 
Hola amigos:
Ante todo felicidades por el año nuevo. Mi problema es el siguiente:
En una base de datos en SQL SERVER tengo una tabla X que tiene los campos DNI, Nombre, Apellidos, Edad, etc... Y quiero hacer una consulta que cuando el usuario escoja el DNI (valor unico) me salgan los demas datos relacionados con ese DNI. La consulta la realizo con un TADOQuery y seria asi:
Código Delphi [-]
 With Modulo_Busqueda.Consulta_Busqueda do
    begin
      Close;
       SQL.Clear;
       SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa :valor';
      Open;
    end;
Como pueden ver me falta el parametro para decirle que asuma por valor a lo que esta en un Edit. Resulta que la funcion Params o ParamsByName no aparecen. Yo he trabajado anteriormente con base de datos de escritorio y habia hecho las consultas con el Query muy bien. Sera que aqui cambia algo? Uso Delphi7.
Espero me ayuden.
Muchas gracias y suerte.

Nati1 05-01-2009 21:11:01

O
Código Delphi [-]
With Modulo_Busqueda.Consulta_Busqueda do    
begin       
Close;       
 SQL.Clear;        
SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa :valor';
Parameters[0].Value:= Edit1.text;        
Open;     
end;

O
Código Delphi [-]
With Modulo_Busqueda.Consulta_Busqueda do     
begin       
Close;        
SQL.Clear;        
SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa :valor'; 
Parameters.ParamByName('valor').Value:= Edit1.Text;       
Open;     
end;

Alexandro 05-01-2009 21:48:14

Hola Neftali:
He hecho lo que me has pedido es esto:
Código Delphi [-]
With Modulo_Busqueda.Consulta_Busqueda do
    begin
      Close;
       SQL.Clear;
       SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa :valor';
       Parameters.ParamByName('valor').Value:=CBox_NoSolapin.text; 
      Open;
    end;
Todo compila de lo mejor. Luego de correr la apli me da el siguiente error:
Line 1 : Incorrect syntax near @P1.
Sabes a que se debe esto?

Delphius 05-01-2009 22:01:22

Hola Alexandro,
¿El campo y el parámetro de que tipo son?
Porque pareciera ser que hablas de numero, y estás pasando un texto.
Una cosa es escribir un número en un TEdit, y otra es que en tu base de datos sea número;).

Creo que el error se debe a eso. Deberías hacer la conversión de forma apropiada y además indicar el DataTpe:

Código Delphi [-]
ADOQuery1.Parameters.ParamByName('Valor').Value := IntToStr(...);
ADOQuery1.Parameters.ParamByName('Valor').DataType := ftInteger;

Saludos,

Alexandro 05-01-2009 22:24:47

Hola delphius:
El tipo de dato que guarda el campo No_Chapa es tipo texto, lo hago asi para trabajar mejor con el.
No se que es lo que pasa que no sale.

Delphius 05-01-2009 22:30:51

¿Estableces el valor de DataType en ftString?

Debería funcionar. No veo error en el código, a menos que el error provenga de otro lado.

EDITO:
Prueba llamando al parámetro de éste modo: @Nombre.

Saludos,

coso 05-01-2009 23:05:43

hola, creo que te falta un =

Código Delphi [-]
SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa = :valor';

Nati1 05-01-2009 23:09:39

Correcto, es mi culpa por copiar y pegar sin ver:
Código Delphi [-]
With Modulo_Busqueda.Consulta_Busqueda do     
begin       
Close;        
SQL.Clear;        
SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa = :valor'; 
Parameters.ParamByName('valor').Value:= CBox_NoSolapin.text;       
Open;     
end;

odrack 16-01-2009 07:22:22

Saludos.

No se si esto te pueda servir, al menos yo utilizo este tipo de consultas y no he tenido ningun problema
Código Delphi [-]
With Modulo_Busqueda.Consulta_Busqueda do    
 begin  
     Close;   
     SQL.Clear; 
     SQL.Text:='SELECT * FROM Tbl_Trabajador WHERE No_Chapa ='+quotedstr(edit1.text);
     Open;  
     end;

Con esto no tienes la necesidad de convertir los datos.
Espero que te sirva!!


La franja horaria es GMT +2. Ahora son las 12:22:06.

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