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 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
Consulta Sql con delphi

hola amigos les cuento que tengo un problema resulta que tengo que realizar una consulta en la cual debo comparar tanto el nombre como el apellido de un cliente para ver la suma total de deposito del cliente pero lo que e hecho no me resulta me da error aqui el codigo
Código Delphi [-]
Select sum(Deposito) from Depositos_Retiros where Nombre='+txt_nombre.text+ 'and'+ Apellido ='+txt_apellido.text
Responder Con Cita
  #2  
Antiguo 15-11-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Pues depende de como lo pongas me parece que esta bien, no deberia dar error.
El asunto me parece que es la colocacion de las comillas:
Ve la diferencia:

Lo tuyo:
Código SQL [-]
'Select sum(Deposito) from Depositos_Retiros where Nombre='+txt_nombre.text+ 'and'+ Apellido ='+txt_apellido.text
Lo que me parece deberia ser:
Código SQL [-]
'Select sum(Deposito) from Depositos_Retiros where Nombre = '+txt_nombre.text+' and Apellido = '+txt_apellido.text
Simplemente mover las comillas.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
lo hise de esa manera y me dice que falta un operador
Responder Con Cita
  #4  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
bueno caral falto esto creo que debe quedar asi:
'Select sum(Deposito) from Depositos_Retiros where Nombre = '+txt_nombre.text+' and Apellido = '+txt_apellido.text'
solo falto al final la comilla '
Responder Con Cita
  #5  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigo amell2020 de esa manera no compila ya que estaria habriendo la comilla y no cerrandola
Responder Con Cita
  #6  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
si me ya veo, creo que el operador que te hace falta es signo +
Responder Con Cita
  #7  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
ah y pregunta amigo donde pones esa consulta en un evento o desde la propiedad del query?
Responder Con Cita
  #8  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
y debes especificar para que BD estas trabajando, porque la que la consulta de caral la secuencia es para access
Responder Con Cita
  #9  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
agrege el signo de + y un parentesis y con eso me compila pero me da error de que me falta operador y haciendo enfasis en la linea where Nombre = Aneudy and Apellido = Arias
Código Delphi [-]
query.sql.add('Select sum(Deposito) from Depositos_Retiros where Nombre = '+txt_nombre.text+' and Apellido = '+txt_apellido.text+')');
Responder Con Cita
  #10  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
'SELECT sum(Deposito ) from Depositos_retiros WHERE NOMBRE='TXT_APELLIDO.TEXT' AND APELLIDO = 'TXT_APELLIDO.TEXT';
prueba ese haber
Responder Con Cita
  #11  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
con ese no me compila y el error que da es txt_nombre.text no de fondo
Responder Con Cita
  #12  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
query.sql.add('Select sum(Deposito) from Depositos_Retiros where Nombre = 'txt_nombre.text' and Apellido = 'txt_apellido.text'
mira con este
Responder Con Cita
  #13  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigo amell2020 ese es el mismo codigo que el de arriba osea el antepenultimo de este
Responder Con Cita
  #14  
Antiguo 15-11-2011
amell2020 amell2020 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 41
Poder: 0
amell2020 Va por buen camino
si y no te funciona, puede mostrarlo una imagen de tu error? asi veremos mejor lo que explicas
Responder Con Cita
  #15  
Antiguo 15-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
amigo lo resolvi agregandole parametro aqui el codigo

Código Delphi [-]
begin
 with Enlace.Consulta_Registro do
    begin
           Close;
           SQL.Clear;
           SQL.Add('Select sum(Deposito) from Depositos_Retiros where Nombre='+txt_nombre.Text+' and Apellido ='+ txt_apellido.Text);
           Parameters.ParamByName(txt_nombre.Text).Value:=txt_nombre.Text;
           Parameters.ParamByName(txt_apellido.Text).Value:=txt_apellido.Text;
          open;
       end;
end;


muchas gracias por la ayuda
Responder Con Cita
  #16  
Antiguo 15-11-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por kurono Ver Mensaje
amigo lo resolvi agregandole parametro aqui el codigo

Código Delphi [-]
begin
 with Enlace.Consulta_Registro do
    begin
           Close;
           SQL.Clear;
           SQL.Add('Select sum(Deposito) from Depositos_Retiros where Nombre='+txt_nombre.Text+' and Apellido ='+ txt_apellido.Text);
           Parameters.ParamByName(txt_nombre.Text).Value:=txt_nombre.Text;
           Parameters.ParamByName(txt_apellido.Text).Value:=txt_apellido.Text;
          open;
       end;
end;


muchas gracias por la ayuda
Son mas líneas pero es más claro y sin parametros
Código Delphi [-]
with Enlace.Consulta_Registro do
begin
  Close;

  SQL.Clear
  SQL.Add('SELECT');
  SQL.Add('    SUM(DEPOSITO) AS TOTALDEPOSITO');
  SQL.Add('  FROM Depositos_Retiros');
  SQL.Add('  WHERE NOMBRE = ' + QuotedStr(txt_nombre.Text));
  SQL.Add('        AND APELLIDO = ' + QuotedStr(txt_apellido.Text));

  Open;
end;
Un saludo.
Responder Con Cita
  #17  
Antiguo 16-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
ok lo copiare y luego lo probare ya que estoy en otra parte del sistema
Responder Con Cita
  #18  
Antiguo 16-11-2011
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.126
Poder: 18
kurono Va por buen camino
hola de nuevo ahora me surgio el siguiente problema tengo una busqueda por nombre y apellido todo el codigo me funciona bien sin ningun error pero a la hora de tener dos nombre con el mismo apellido surge el problema ya que no me localiza el cliente que busco simpre me busca el primer registro con ese apellido

uso Locate para la busqueda
Responder Con Cita
  #19  
Antiguo 17-11-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Si tienes dos nombre y el mismo apellido, el resultado son dos registros.
Lo que pasa es que tu capturas el primero, a menos que añadas otra condición de buscar en la SQL como el código de socio del cliente, el CIF, NIF, CAMPOx

Un saludo
Responder Con Cita
  #20  
Antiguo 17-11-2011
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Puedes poner un DBGrid con un DataSource para que el usuario vea todas las coincidencias y pueda seleccionar la que desea, también puedes poner un label que indique el número de registros devueltos con adoquery1.recordcount y poner botones para moverte al primer registro, al anterior, al siguiente y al último. adoquery1.First, adoquery1.prior, adoquery1.next, adoquery1.last.

Saludos.
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
Consulta delphi llopez88 Varios 6 03-11-2011 10:24:25
consulta en Delphi corvarod OOP 2 09-03-2009 22:28:22
Consulta SQL+DELPHI 7 Gbyte SQL 8 28-07-2008 10:28:42
Consulta Delphi 6, Delphi 2005 y Delphi 2006 Leviatan Varios 6 18-08-2007 16:02:08
Consulta con delphi zvf OOP 11 27-07-2006 00:57:49


La franja horaria es GMT +2. Ahora son las 15:39:21.


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