![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Consulta maestro-detalle, DBExpress con MySQL
Hola a todos. Soy nuevo en el foro. Estoy muy contento y satisfecho con todo lo que he aprendido aquí en los últimos días. Estoy haciendo una aplicación para consumo propio, su utilidad será agenda, facturar y llevar los datos de los clientes en una peluquería. Estoy en situación inicial (sólo he hecho prácticas...).
Inicialmente he optado por una conexión dbexpress con base de datos MySQL, estoy diseñando un tipo de consulta maestro-detalle y no me acaba de funcionar. Para practicar he creado 2 tablas cliente y factura, visualizo el query del cliente en campos dbedit y navego correctamente con un dbnavigator. En un dbgrid visualizo las facturas respectivas del cliente que se refrescan correctamente. Problema: en el SQLQuery de factura, DataSource apunta al DataSource de Cliente (que es maestro) y en SQL tengo:
y funciona pero si hago cualquier variación, por ejemplo escoger ciertos campos o renombrarlos:
me da error diciendo que otro campo (por cierto, indexado) no lo ha encontrado. He hecho diferentes variaciones de SELECT y sólo funciona con SELECT *. ¿que puede estar pasando? Espero haber aportado suficientes datos ![]() |
#2
|
||||
|
||||
Hola, prueba quitando el acento a Numero.
Saludos.
__________________
![]() Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
|||
|
|||
Hola enecumene, no es el acento, se me ha escapado cuando lo he escrito aquí como ejemplo...
Es curioso, porque cuando escribo las instrucciones SQL en el phpmyadmin hace los SELECT de cualquier tipo correctamente pero si lo hago desde un SQLQuery imprescindiblemente se han de seleccionar ciertos campos para que no salga error. |
#5
|
|||
|
|||
Gracias por vuestras respuestas. Tienes razón, basti, se ha de incluir necesariamente el campo que relaciona el detalle con el maestro.
No obstante, he descubierto otra cosa, que al campo que relaciona no se le puede dar otro nombre en el select, es decir si hago funciona, pero si hago no funciona. Dándole vueltas he descubierto que si quiero hacer esta segunda opción, la propiedad ClientDataSet.IndexFielName debo de poner también Cliente. Seguro que lo que explico es muy evidente para todos, pero claro, esto de ser novato trae estos dolores de cabeza ![]() Una vez resuelto esto me encuentro con otro problema: yo no quiero que en la grid salga el campo fra_idcli, que dinámicamente me lo pone porque hemos visto que es obligatorio ponerlo. Este campo hace que en cada linea me repita el mismo número de cliente (es obvio: ¡todas las lineas son las facturas del mismo cliente!). ¿cómo puedo hacer para que una columna no salga en la grid? Gracias por vuestra paciencia. Última edición por Josepo fecha: 28-11-2007 a las 10:55:05. |
#6
|
|||
|
|||
Puedes hacerlo de dos maneras. Una en el propio editor de campos del dataset, poniendo la propiedad visible a false. La otra es definiendo las columnas del dbgrid (doble click en el grid), añadiendo sólo las que quieres que se vean. Cualquiera de las dos opciones sólo afectará al grid, no al resto de controles que puedas tener asociados al campo.
__________________
Saludos. |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al modificar datos en maestro detalle con dbexpress | alopete | Conexión con bases de datos | 5 | 01-10-2007 12:00:32 |
Consulta maestro detalle. | jplj | SQL | 5 | 30-05-2007 20:24:14 |
problemas maestro-detalle DBexpress | jmlifi | Conexión con bases de datos | 2 | 16-06-2006 12:27:05 |
Ordenar Maestro detalle en DBExpress | cesar_picazo | Conexión con bases de datos | 3 | 17-08-2005 18:10:30 |
Maestro/Detalle con dbExpress | mosorio | Conexión con bases de datos | 4 | 02-09-2003 23:48:52 |
![]() |
|