FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Pasar campos de la tabla localidad a un combobox de el form paciente...
Hola a todos, estoy haciendo un sistema para un consultorio pediatrico con delphi 7, BD SQL Manager 2008 y motor Firebird, en la parte de la consulta necesito pasar a un combobox el campo de una tabla ajena a paciente, va en realidad estan relacionadas, la tabla es localidad y lo logre, pero los campos se repiten por lo tantome han proporcionado aqui una ayuda, la cual agradezco q dice q tengo q agrupar los campos por el nombre de dicha localidad pero me tira un error de id, el cod. es el siguiente:
DMata_module. Q_loc:es el query de la tabla localidad. El error me tira cuando abro la consulta... Agradezco su ayuda!!!, Gracias... |
#2
|
||||
|
||||
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Agradezco mucho tu ayuda, pero he probado el código q me mandaste y me sigue tirando el error del id en la linea en la q agrupo, me podrías proporcionar alguna otra solución, muchas gracias!!!
|
#4
|
||||
|
||||
Para mi el error está en
Fields[2] y según esa consulta sebería ser Fields[0] Saludos. |
#5
|
|||
|
|||
No, disculpa te corrija, el 2 es para indicarle q campo de la BD se le asigna al combobox, se considera al primer campo de la DB=0, el primero=1 y asi sucesivamente, en mi caso quiero mostrar el nombre de la localidad q vendría a ser el campo nº 2, igual agradezco tu predisposición.
El error radica cuando agrupo, hago el seguimiento y me lo marca ahí... |
#6
|
||||
|
||||
Esa es una consulta de ejemplo nomás?
Sin agrupar funciona? |
#7
|
|||
|
|||
Si, funciona... Es mas la consulta sin agrupar funciona bien si selecciono todos los campos de localidad y yo quiero buscar solo por el nombre para poder agruparlo por q sino me muestra los nombres pero repetidos...
|
#9
|
||||
|
||||
A ver... aclaremos algunas cosas:
1) La consulta de ejemplo solamente está mostrando UN CAMPO por lo que en Fields[] sólo es posible el índice 0, cualquier otro debería arrojar una excepción porque no hay más campos que mostrar. 2) Confundes los conceptos CAMPOS con REGISTROS. Repasa la teoría de base de datos. Tu dices que la consulta te arroja muchos campos... ¡Wrong! querrás decir que te arroja varios registros. ¿Repasemos, dale? registros = filas de la tabla, campos = columnas de la tabla. 3) Dices que te arroja un error. ¿Porqué no te tomas la molestias de decirnos el error textual? ¿O pretendes que adivinemos? Navidad ya pasó por lo que no le puedo pedir a Papá Noel que me traiga de regalo una bola de cristal nueva... Lástima, tendrás que esperar a Reyes Magos 3) ¿Group by? ¿Localidades duplicadas? ¡WTF! Si a cada Localidad le corresponde un PK ¿Que sentido tiene agrupar? Digo no... Una tabla Localidad debería ser muy simple, algo como esto seguramente: PK - Nombre 1 - Localidad1 2 - Localidad2 ... N - Localidadn Por tanto no debería haber localidad duplicada (no al menos en el valor PK), el contexto está sugiriendo que no debería haberla. Si la idea es tener en una tabla la lista de localidades... Agrupar por algo que no admite repetidos, es redundante. Debería bastar con un
Para tener dicho listado. Si nos explicas mejor en que consiste esa tabla quizá podríamos pillar al toro. ¿Digo no? Saludos, |
#10
|
||||
|
||||
Cita:
Creo entender que estás confundido en la parte de los campos de la tabla y los campos del dataset. La tabla de la db puede tener varios campos. IDLOCALIDAD, NOMBRE_LOCALIDAD, IDPROVINCIA, NRO_CODIGOPOSTAL ..... Pero la consulta del dataset solo trae un campo, LOCALIDAD por lo que Fields[] solo puede ser 0. La prueba que haces y que funciona, es porque el dataset trae al menos 3 o mas campos, entonces Fields[2] te muestra lo que está en la tercer columna. Creo que antes de decir que Fields[0] no funciona, tenías que probar y si de hecho no funciona ahí si repreguntar. Tampoco es tan grave, el tiempo te va a forjar la paciencia que hace falta para programar, y por otro lado si en el club no se encuentra una solución a algo, es porque no existe. Si estás trabajando con FireBird y dbx o ibx te puedo pasar unos apuntes que te van a ayudar. Por otro lado y fuera del tema del tema principal, las localidades no se deberían repetir a menos que se llamen igual pero pertenezcan a distintas provincias/estado ... y si así lo fuese no se deberían agrupar tampoco. No se si tu idea es programar todo a mano por el tipo de consulta, pero hay componentes que si le indicas el dataset, cargan los datos automativamente, pero también es otro tema. Saludos. |
#11
|
||||
|
||||
Cita:
Me parece más claro utilizar la función FieldByName en lugar de la propiedad vectorial Fields. No existe lugar a dudas de que campo estamos hablando si la instrucción se escribe: Como ya te han explicado, hay que usar con cuidado la propiedad Fields, ya que si alteras el órden o el número de los campos en una consulta sin tomarlo en cuenta, puede devolverte un valor inesperado. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#12
|
||||
|
||||
Usar FieldByName sería lo correcto, pero no creo que estén declarados los campos.
|
#13
|
|||
|
|||
Agradezco mucho su colaboración a todos, y quiero comentarles q ya probe con todas las opciones q me dijeron, pero me sigue tirando el mismo error, para ser más clara el error me tira cuando en la linea:
De lo contrario si yo modifico esa linea de código a: No me lo tira más, pero me muestra las localidades agrupadas, para q se entienda mejor hago esto: Que debería hacer para q no me las muestre más repetidas... ya q no puedo agruparlas porq no puedo seleccionarlas por localidad, desde ya muchas gracias!!!... |
#14
|
||||
|
||||
Cita:
Ayudaría mucho que nos pusieses literalmente el mensaje de error que te arroja. (Ctr+C para copiarlo y Ctrl+V para pegarlo aquí en el mensaje) Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#15
|
|||
|
|||
---------------------------
Debugger Exception Notification --------------------------- 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. --------------------------- OK Help --------------------------- |
#16
|
||||
|
||||
Cita:
Revisá si te está pasando algo parecido a esto. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#17
|
|||
|
|||
Si, estamos haciendo lo mismo porq somos compañeras de tesis...
|
#18
|
||||
|
||||
Cita:
Para solucionarlo tienes que traer el campo necesario desde la consulta con una sql como esta:
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í:
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. |
#19
|
||||
|
||||
Eso supuse y por eso es que te mencioné el enlace, allí se lo está tratando y ya hay varias sugerencias.
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#20
|
|||
|
|||
Bueno muchas gracias y ya con mi compañera lo estamos estudiando en conjunto, gracias!!!
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Llenar un combobox con los campos de una tabla | enecumene | Conexión con bases de datos | 6 | 07-03-2007 22:42:28 |
como pasar los datos de un combobox a una tabla | Goyo | OOP | 0 | 24-01-2007 20:59:50 |
como pasar los datos de un combobox a una tabla | Goyo | OOP | 2 | 09-01-2007 00:21:22 |
como pasar los datos de un combobox a una tabla | Goyo | OOP | 0 | 21-12-2006 22:13:49 |
pasar datos de la tabla a un combobox | todook | Conexión con bases de datos | 5 | 29-11-2006 12:44:26 |
|