FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Analizando Maestro-Detalle
Hola amigos del Foro. Ahora solicitando su ayuda para analizar un código:
Uso: Delphi6, Firebird 2.0, IBX. Explico: Tengo un formulario para REGISTRAR datos con el concepto Maestro-Detalle. Les envío el código que estoy tratando de que funcione, pero marca el siguiente error: Cita:
MAESTRO: m_Lecher numeric(10) m_mes numeric(2) m_anio numeric(4) DETALLE m_Lecher numeric(10) m_mes numeric(2) m_anio numeric(4) d_pbl_tipo numeric(3) d_pbl_causa numeric(3) Este error me lo muestra al dar click sobre el boton "btnAgregar" (Evento OnClick)
Exactamente en la linea del dsPBLDetalle.Append es donde marca el error....algo estoy haciendo mal. Detalles de los componentes: Tengo 2 DataSet (dsPBLMaestro y dsPBLDetalle), en el detalle tengo enlazado en su propiedad DataSource el TDataSource que tiene el Maestro, por lo tanto según lo he consultado, para grabar el registro (si todo esta bien), lo hago de esta manera:
Primeramente lo que hago es llenar EL MAESTRO, q cuando doy click sobre el botón (btnRegistrarDetalle) hace esto:
Posteriormente lleno los campos para el detalle y doy click sobre el botón "btnAgregar" y hace esto en su evento OnClick:
No sé donde me estoy equivocando...agradecere mucho alguien q me ayude a localizar lo q tengo mal??... CÓDIGO COMPLETO:
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! Última edición por mRoman fecha: 17-05-2018 a las 20:25:57. |
#2
|
||||
|
||||
Hola.
Dado el error que mencionas, lo primero que revisaría es el estado de la propiedad Required del TField en cuestión: Si creaste los campos persistentes podes cambiar el valor desde el Object Inspector. Lo siguiente no tiene que ver con el error, pero es mas seguro hacer:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 17-05-2018 a las 21:20:10. |
#3
|
|||
|
|||
Cita:
|
#4
|
||||
|
||||
Gracias ecfisa (...tu nombre es Daniel?).
Cambiaré el código a la forma como me sugieres... Gracias por tus comentarios y tu tiempo.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#5
|
||||
|
||||
Cita:
Analizando lo q comentas, pudiera ser que el problema me lo este dando en el DataSet Maestro, ya que en cuanto llega al Append del DataSet Detalle, marca el error...es decir NI SIQUIERA ME DEJA ASIGNARLE EL DATO AL CAMPO LECHER lo que corresponde !!. Verifico y les comento.... p.d. Aclaración de los nombres de campo q comparti al inicio del hilo....estos inician con "m_" para maestro y "d_" para el detalle, lo hice asi para fines de ilustracion, pero el campo real es LECHER, sin "m_" y "d_", respectivamente.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! Última edición por mRoman fecha: 18-05-2018 a las 00:25:20. |
#6
|
||||
|
||||
Cita:
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#7
|
||||
|
||||
Cita:
Algo como esto:
o esto otro:
En este ultimo talvez no muestre nada.... Bueno dejen hago pruebas.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#8
|
||||
|
||||
Hola.
Cita:
Pero también podría ser cualquier otra que tenga su propiedad Required en True la que esté disparando la excepción y, como señaló orodriguezca, el problema se esté generando en otro lado. Esa situación podría producirse cuando, por ejemplo, generas los campos en el IBDataSet y luego modificas (quitas) la restricción NOT NULL desde la bd. En ese caso tal vez te funcione volver a gererar las sentencias SQL de los IBDataSets que actuan en la relación. Realmente es muy difícil tratar de reproducir la situación de error dado lo largo del código y los múltiples elementos que entran en juego. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#9
|
||||
|
||||
Cita:
Realice la verificacion de los campos del Maestro y el Detalle, dentro del DataSet respectivo y los campos que pertenecen a la PrimaryKey de la tabla, tenian en su propiedad Required=True, se lo cambie a False y ya no marco error al momento de realizar el Post al dataset del detalle, ahora lo marca en el ApplyUpdates.
Código:
'validation error for column LECHER, value "*** null ***"'.
(Lo marcado con color son los campos de la llave primaria de la tabla DETALLE) Sinceramente esta es la primera vez que trabajo Maestro-Detalle usando el enlace entre los dataset, mediante la propiedad DataSource. Ahora por donde va la cosa???... Gracias por su tiempo !. Saludos
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#10
|
||||
|
||||
Hola.
Cuando la estructura del algoritmo se complejiza y estamos en una situación nueva, es muy útil crearse un ejemplo simple para cotejar con lo echo. Te hice uno basado en Firebird+IBX, espero te sirva de guía. Tablas:
DataModule: (el DataModule deberá ser el primero en Auto-create forms ) Prueba:
Resultado: Saludos Pd: Si el código de prueba te pudiera ser útil avisame y te lo adjunto.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#11
|
||||
|
||||
Ok....te agradezco ecfisa, Muchas gracias por dedicarle tiempo a mi problema.
Haré los cambios a mi código y te (les) comentó como me fue. Pendiente con el aviso para el envío de tu código. Saludos y nuevamente gracias.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! Última edición por Casimiro Notevi fecha: 18-05-2018 a las 23:55:03. |
#12
|
||||
|
||||
Oye....no haría falta en esta parte del código...el POST para ambos DataSets??
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
#13
|
||||
|
||||
Hola Miguel.
El método ApplyUpdates se encarga de realizar el guardado (post) de los datos almacenados en caché para cada TDataSet que se le pasa como argumento. Te adjunto la prueba mas afinada y un script SQL para generar las tablas y algunos datos para el archivo maestro. Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#14
|
||||
|
||||
Cita:
Lo reviso gracias.
__________________
Miguel Román Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Saber si el DBGrid (Detalle) esta Vacio en Relacion Maestro/Detalle | Adrian Murua | Conexión con bases de datos | 2 | 03-01-2009 14:48:46 |
Maestro/Detalle (No graba en tabla Maestro) | teclilla | Tablas planas | 12 | 21-04-2008 21:59:54 |
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes | akinom38 | Varios | 1 | 09-11-2007 20:27:44 |
Numerar el detalle Maestro / detalle en secuencia | josejose | SQL | 5 | 10-02-2007 01:27:38 |
Maestro-Detalle ;Actualizar detalle a partir de un DBgrid | norberto_larios | Conexión con bases de datos | 1 | 11-09-2004 19:17:34 |
|