none
Relación Maestro Detalle RRS feed

  • Pregunta

  • Hola! no se si alguien me puede ayudar, tengo una relación maestro detalle en un formulario que compone de las siguientes tablas, Encabezado de compra y Detalle de Compra, utilizo un dataset que contiene la relacion en la bd de las dos tablas, todo funciona bien, pero... cuando dos usuarios diferentes en dos maquinas diferentes están utilizando el mismo formulario que es compras, me graba solo el encabezado de la compra y no los detalles de la misma, alguien sugiere como sulucionar esto?

    Muestro las tablas relacionadas:

    EncabezadoCompra DetalleCompra

    Id_compra  int, Id_detalle  int,

    Id_proveedor, Id_compra int,

    Fecha date, Id_producto int,

    No_documento, Cantidad numeric (18,0),

    Subtotal numeric (18,2), Subtotal numeric (18,2),

    Descuento numeric (18,2), Descuento (18,2),

    Total numeric (18,2) Total numeric (18,2)

    Llave primaria EncabezadoCompra.Id_compra ; llave foranea DetalleCompra.Id_compra

    a la hora de guardar los datos en el evento click de un botón va el siguiente código

     Private Sub ComprasBindingNavigatorSaveItem_Click(sender As System.Object, e As System.EventArgsHandles ComprasBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.ComprasBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.DsCompras)
     
        End Sub

    • Cambiado Enrique M. Montejo jueves, 3 de mayo de 2012 10:01 acceso a datos (De:Lenguaje VB.NET)
    martes, 1 de mayo de 2012 18:34

Todas las respuestas

  • cuando dos usuarios diferentes en dos maquinas diferentes están utilizando el mismo formulario que es compras, me graba solo el encabezado de la compra y no los detalles de la misma,

    pero la db a la cual apuntas estos usaurios con sus aplciaciones esta centralizada ?

    o sea quizas es un sql server central al cual apuntas ambos usuario con sus aplciaciones en el connection string

    de casualidad estaras usando algun bloque try..catch al cual no muestras el mesnaje de error ? lo planteo porque quizas graba el encabezado pero al generar el detalle falla y al no enterarte solo queda el encabezado (si trabajarias con transacciones esto no sucederia)

    a la hora de guardar los datos en el evento click de un botón va el siguiente código

    en el codigo puedo ver que guardas la compra, pero el detalle donde lo actualizas ?

    o es todo en la misma operacion que se genera?

    cada usuario cuando graba la compra se le geenran registros encabezado con diferentes id ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 1 de mayo de 2012 19:39
  • Ok Gracias por contestar, si efectivamente la base de datos esta en una maquina y los usuarios se conectan a ella a través del conection string, uso sql server express edition; si uso un bloque try catch en la aplicación, y el dataset es por los dos, osea que al momento que solo un usuario graba una compra, el encabezado y el detalle funciona bien, pero cuando dos personas están ingresando compras es cuando me da el problema, lo que he hecho al momento es trabajar por separado en transacciones diferentes el encabezado y cada detalle de compra lo voy guardando conforme se va llenando en el formulario pero yo  se que esto es una mala práctica.... no se si me explique bien... 
    martes, 1 de mayo de 2012 21:32
  • si uso un bloque try catch en la aplicación

    y ese bloque try..catch que defines muestras el error en caso de producirse ? o sea cuando sucede esto no se genera ningun error en el proceso

    no dejas la parte del catch sin codigo, no ?

    lo que he hecho al momento es trabajar por separado en transacciones diferentes el encabezado y cada detalle de compra lo voy guardando conforme se va llenando en el formulario

    no veo que este mal generar quizas el encabezado de al orden de compra, por ahi el detalle si se suele generar cuando se confirman todos los productos y cantidades de la orden

    el id de las tablas es autonumerico ? porque quizas la forma en como recuperas el id geenrado por la tabla sea el problema

    [N-Tier] – Desarrollo en capas - Ejemplo Facturacion - parte 3

    no te animas a dejas los dataset de lado y controlar el codigo que se genera usando la tecnica que planteo en el articulo

    creo que seria mucho mejor que usas dataset, aunque esto implique algo ams de codigo

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 1 de mayo de 2012 21:55
  • Si el Id_compra de la tabla EncabezadoCompras es auto numérico, y el Id_detalle_compra de la tabla detalle compra también lo es... y definitivamente si me gustaría probar controlar el código pero empiezo leyendo desde la parte 1 verdad, y tal vez te seguiría molestando con soporte a la hora de implementarlo.... va? 
    martes, 1 de mayo de 2012 22:23