Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
ADOQuery: problema con GROUP BY

Hola Club, utilizo un ADOQuery con la siguiente sentencia SQL:
Código SQL [-]
Select CODIGO, DENOMINACION
from Talles 
group by CODIGO, DENOMINACION

Utilizo el Group By ya que hay muchos registros con el mismo código y denominación pero quiero mostrarlos solamente una sola vez. El problema surge al querer eliminar uno de los registros me da una excepción notificando lo siguiente: EOleException with message 'Información de columna de clave insuficiente o incorrecta; demasiadas filas afectadas por la actualizacion'
Me imagino que el problema debe venir por el group by, pero lo cierto es que tengo que usarlo. Como puedo solucionar esto? Alguna sugerencia.

Slds.
Responder Con Cita
  #2  
Antiguo 16-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Por favor, recuerda poner títulos descriptivos a tus preguntas, gracias
Responder Con Cita
  #3  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Problema ADOQuery con Group By

Cita:
Empezado por Casimiro Notevi Ver Mensaje
Por favor, recuerda poner títulos descriptivos a tus preguntas, gracias
Podes editarlo? no me di cuenta
Responder Con Cita
  #4  
Antiguo 16-06-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si usas esa sentencia para eliminar registros suponiendo que sea asi, la tabla tiene que contener solo esos campos, si tiene mas te dara ese error.
Para eliminar registros usa delete from.
No creo que influya el group by
Saludoa
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Caral Ver Mensaje
Hola
Si usas esa sentencia para eliminar registros suponiendo que sea asi, la tabla tiene que contener solo esos campos, si tiene mas te dara ese error.
Para eliminar registros usa delete from.
No creo que influya el group by
Saludoa
Digamos que debo agregarle todos los campos a esta sentencia? Este componente solo tiene una sola sentencia no te permite diferenciar entre el Select, Update y Delete.
Responder Con Cita
  #6  
Antiguo 16-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Jere_84 Ver Mensaje
Podes editarlo? no me di cuenta
¿Qué título podemos ponerle?
Responder Con Cita
  #7  
Antiguo 16-06-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
El adoquery tiene la propiedad stringSQL y su casilla para poner el codigo, pero, se puede poner la sentencia por codigo dentro del form, ahi es donde puedes poner todo lo que necesites.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 16-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Qué título podemos ponerle?
Problema ADOQuery con Group by
Responder Con Cita
  #9  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Caral Ver Mensaje
Hola
El adoquery tiene la propiedad stringSQL y su casilla para poner el codigo, pero, se puede poner la sentencia por codigo dentro del form, ahi es donde puedes poner todo lo que necesites.
Saludos
La cuestion es que necesito solo mostrar una vez cada uno de los registros y si agrego todos los campos en la sentencia, se ven todos los registros con codigo repetidos. digamos que esta es mi tabla:

Codigo Denominacion Talle Codigo_interno
1, Letras, S, 1
1, Letras, M, 2
1, Letras, L, 3
1, Letras, XL, 4
2, Numeros, 38, 1
2, Numeros, 40, 2
2, Numeros, 42, 3


y en la grilla lo que quiero moestras es esto:

Codigo Denominacion
1, Letras
2, Numeros

para eso hice esta sentencia SQL en el componente ADO Query :

Código SQL [-]
Select CODIGO, DENOMINACION 
From Talles 
Group By CODIGO, DENOMINACION

De esta forma aparece como yo quiero pero no elimina porque dice: 'Información de columna de clave insuficiente o incorrecta filas afectadas por la actualización' . Alguien sabe como puedo solucionar eso?
Slds.
Responder Con Cita
  #10  
Antiguo 17-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puede que lo que necesites es usar "distinct", esto te devuelve cada uno distinto que exista del campo que quieras.

Código SQL [-]
select distinct(codigo) from ...
Responder Con Cita
  #11  
Antiguo 17-06-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Sigo sin ver el problema.
1- Tienes un adoquery que te muestra lo que necesitas.
2- quieres borrar un registro.
Colooca otro adoquery y haces una sentencia sql que borre lo que quieres segun el dato del adoquery 1.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Puede que lo que necesites es usar "distinct", esto te devuelve cada uno distinto que exista del campo que quieras.

Código SQL [-]
select distinct(codigo) from ...
Hola Casimiro pero se puede mostrar mas de dos campos en el Distinct? tengo entendido de que no..

Slds.
Responder Con Cita
  #13  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Caral Ver Mensaje
Hola
Sigo sin ver el problema.
1- Tienes un adoquery que te muestra lo que necesitas.
2- quieres borrar un registro.
Colooca otro adoquery y haces una sentencia sql que borre lo que quieres segun el dato del adoquery 1.
Saludos
Si es cierto solo que no quería recurrir a eso pero me parece que va a ser lo mejor..
Slds.
Responder Con Cita
  #14  
Antiguo 17-06-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Si te empeñas en tener un solo adoquery, entonces guarda el dato en una variable, cierralo, cambia de sql, ábrelo, y otra vez lo mismo.
Osea, da igual.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #15  
Antiguo 17-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Jere_84 Ver Mensaje
Hola Casimiro pero se puede mostrar mas de dos campos en el Distinct? tengo entendido de que no..
Slds.
Hombre, que preguntes eso demuestra que no colaboras mucho
¿Cuánto tiempo tardas en hacer la prueba?
Código SQL [-]
Select distinct(codigo), denominacion 
from tallas
Responder Con Cita
  #16  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Hombre, que preguntes eso demuestra que no colaboras mucho
¿Cuánto tiempo tardas en hacer la prueba?
Código SQL [-]
Select distinct(codigo), denominacion 
from tallas
Efectivamente!, La sentencia Distinct solo admite un campo lamentablemente.
Slds.
Responder Con Cita
  #17  
Antiguo 17-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.070
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Jere_84 Ver Mensaje
Efectivamente!, La sentencia Distinct solo admite un campo lamentablemente.
Slds.
Pues no sé cómo has hecho la prueba
Imágenes Adjuntas
Tipo de Archivo: jpg Pantallazo.jpg (18,7 KB, 10 visitas)
Responder Con Cita
  #18  
Antiguo 17-06-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues no sé cómo has hecho la prueba
Si estas en lo cierto no lo probé bien, funciona genial!
Gracias por la ayuda!

Slds.
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
ayuda problema con group by Rofocale Varios 12 12-05-2011 21:24:38
Problema con Group by david_uh Firebird e Interbase 2 13-04-2008 20:37:08
group by y problema de logica reina SQL 3 23-05-2006 15:08:45
Problema con group by apicito SQL 7 23-05-2006 08:32:25
problema con group by raudelink SQL 2 18-10-2004 21:19:05


La franja horaria es GMT +2. Ahora son las 13:00:43.


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