Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-06-2015
rufo rufo is offline
Miembro
 
Registrado: jul 2006
Posts: 240
Poder: 18
rufo Va por buen camino
Como buscar un nombre

Buenas noches amigos, quiero pedirles su apoyo resulta que tengo una tabla en el cual tengo el campo nombre del acreedor entonces quiero hacer una consulta en esta tabla pero desde delphi que al poner el nombre del acreedor me arroje los registros que tenga este, les pongo mi codigo en el cual me arroja un error y es ahi donde estoy atorado y solicito su apoyo, de antemano gracias.

Código Delphi [-]

procedure TModificar1.Button1Click(Sender: TObject);
begin
  if edit5.Text<>'' then
 begin
    with dm1.Q_cacreedor do
    begin
      active:=false;
      sql.Clear;
      sql.add('select * from Cacreedor');
      sql.add('where nacredor='+edit5.text);
      active:=true;
      if recordcount=0 then
         messagedlg('No se encontro el ningun movimiento, intente de nuevo',mtinformation,[mbok],0);
          begin
           combobox2.Text:=fieldbyname('tipoacre').asstring;
           edit6.Text:=fieldbyname('fecha').asstring;
           edit10.Text:=fieldbyname('monto').asstring;
         end;
     end;
  end;
end;

El error que me arroja al dar clic en el boton es el siguiente:

"Project Principal.exe raised exception class EDBEngineError with message 'General SQL error. Pocos parametros, se esperaba 1"

Espero su ayuda y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 23-06-2015
ralf8727 ralf8727 is offline
Miembro
 
Registrado: may 2015
Posts: 22
Poder: 0
ralf8727 Va por buen camino
Código Delphi [-]
procedure TModificar1.Button1Click(Sender: TObject); 
begin   
  if edit5.Text<>'' then  
  begin     
    with dm1.Q_cacreedor do     
    begin       
      active:=false;       
      sql.Clear;       
      sql.add('select * from Cacreedor');       
      sql.add('where nacredor=:acreedor');
      Parameters.ParamByName('acreedor').Value:=edit5.text
      active:=true;       
      if recordcount=0 then          
        messagedlg('No se encontro el ningun movimiento, intente de nuevo',mtinformation,[mbok],0);           
      begin            
        combobox2.Text:=fieldbyname('tipoacre').asstring;            
        edit6.Text:=fieldbyname('fecha').asstring;            
        edit10.Text:=fieldbyname('monto').asstring;          
      end;      
    end;   
  end;
end;
pasa el edit5 como un parametro

Última edición por ecfisa fecha: 23-06-2015 a las 05:48:34. Razón: Corregir identación
Responder Con Cita
  #3  
Antiguo 23-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Definitivamente la mejor solucion es usar parametros
Por curiosidad cual era el contenido de Edit5.Text cuando te da error? Siempre te da error?
Responder Con Cita
  #4  
Antiguo 23-06-2015
rufo rufo is offline
Miembro
 
Registrado: jul 2006
Posts: 240
Poder: 18
rufo Va por buen camino
Disculpen mi ignorancia pero como le hago para que mi edit se pase a parametros y de antemano gracias por su ayuda.
Responder Con Cita
  #5  
Antiguo 23-06-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En el código que publicaron se pasa el contenido del edit por parámetro
Responder Con Cita
  #6  
Antiguo 23-06-2015
ralf8727 ralf8727 is offline
Miembro
 
Registrado: may 2015
Posts: 22
Poder: 0
ralf8727 Va por buen camino
cuando generes consultas pasas los parametros asi

ejemplo

Código Delphi [-]
ADOQuery2.sql.add('select nombre,telefono from clientes where id=:arametro1 and activo=:arametro2')
ADOQuery2.Parameters.ParamByName('arametro1').Value:=el parametro
ADOQuery2.Parameters.ParamByName('arametro2').Value:=el parametro
ADOQuery2.ExecSQL;
ADOQuery2.open;
los dos puntos le dicen a delphi que son parametros

otra opcion es guardar la consulta en un string

ejemplo

Código Delphi [-]
var
sql:string;

begin

sql:= 'select nombre,telefono from clientes where id='+id.text+' and '+ 'activo='+activo.text;

adoquery2.sql.add(sql);
ADOQuery2.ExecSQL;
ADOQuery2.open;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Buscar un nombre en diferentes tablas Delphitest Varios 11 29-11-2014 09:48:48
como enviar nombre de tabla como parametro ? sabueso1010 SQL 15 27-09-2011 17:19:48
Como buscar en un combobox principiante22 Varios 2 18-08-2008 03:46:30
como acceder a un objeto si el nombre es pasado como un string marcelinux Varios 4 08-11-2007 00:20:39
como buscar ? maruenda Conexión con bases de datos 1 31-12-2003 16:11:28


La franja horaria es GMT +2. Ahora son las 17:17:25.


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
Copyright 1996-2007 Club Delphi