Ver Mensaje Individual
  #18  
Antiguo 12-01-2012
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Reputación: 19
Chris Va por buen camino
Cita:
Empezado por y_a_p Ver Mensaje
---------------------------
Project Project_tesis.exe raised exception class EDatabaseError with message 'Q_loc: Field 'ID_LOC' not found'. Process stopped. Use Step or Run to continue.
---------------------------
SUPONGO: El componente de conexión está buscando el campo ID_LOC, el cual no estás trayendo con la consulta:
Código Delphi [-]
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES');

Para solucionarlo tienes que traer el campo necesario desde la consulta con una sql como esta:
Código Delphi [-]
DM.Q_loc.SQL.Add('select ID_LOC, LOCALIDAD from LOCALIDADES');

Este tipo de problemas es común si tienes una relación maestro detalle.

Por otro lado, a cómo te ha apuntado ya antes el compañero Delphius, no puedes hacer una agrupación así por así. El código SQL que tenías (select LOCALIDAD from LOCALIDADES GROUP BY LOCALIDAD) -por lo menos en Firebird- no te funcionará. Necesitas un campo "agregador/agrupador" que no existe en la consulta citada.

Para obtener una única copia de un valor repetido o no repetido, utiliza la clausula "DISTINCT" de SQL. Ya que no has mencionado el motor de base de datos que estás utilizando, desconozco si está soportada esa clausula. Lo más probable es que sí porque es muy común. Entonces tu consulta debería quedar así:
Código Delphi [-]
DM.Q_loc.SQL.Add('select distinct ID_LOC, LOCALIDAD from LOCALIDADES');

Ya que estás utilizando el valor del campo ID_LOC para no sé que, ignoro las consecuencias que pueda tener la clausula DISTINCT en el comportamiento de tu aplicación.

Saludos,
Chris.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita