Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2014
patan patan is offline
Registrado
 
Registrado: sep 2007
Posts: 2
Poder: 0
patan Va por buen camino
Problema auto_increment master/detalle Mysql

Hola, les cuento que estoy con un problema que me esta rompiendo la cabeza, estoy haciendo un sistema de facturacion en Delphi XE2, usando como administrador de bd Mysql.
tengo 2 tablas: mv_movimiento (cabecera de la factura) con la clave id_movimiento, autoincrement
mv_detalle (detalle de factura) con un campo movimiento que apunta a mv_movimiento.id_movimiento
los pasos para grabar la factura -donde DM es el DataModule- son asi:

CARGA DE CABECERA DE FACTURA
Código Delphi [-]
  Dm.Cmv_movimiento.Insert;
   Dm.Cmv_movimiento.FieldByName('Id_movimiento').AsInteger:=0
//.... cargo los otros campos de la cabezera
// no hago post aca por las dudas que de algun error en la carga de items

despues recorro los items y los cargo

Código Delphi [-]
 for filaux := 1 to  col-1 do  //ciclo de recorrido
  begin
     //CARGA DEL DETALLE
   Dm.Cmv_detalle.Append;
   Dm.Cmv_detalle.FieldByName('Id_detalle').AsInteger:=0;
   ...//cargo los otros campos del detalle
   Dm.Cmv_detalle.FieldByName('movimiento').AsInteger:=????;

por supuesto dentro de try except

si no hay error al final de todo
Código Delphi [-]
Cmv_movimiento.Post;
Cmv_detalle.Post;
Los problemas son:
que id_movimiento uso para cargar en los items?
cuando comienza a recorrer los items del detalle para grabarlo me sale error de Key violation, esta bien hacer los post al final?
Estoy usando TsqlDataset-> TdatasetProvider(UpdateMode:upWhereKeyOnly)->Tclientdataset.

Espero haber sido claro, aunque a esta altura estoy mas que tildado.

MUCHAS GRACIAS!! SALUDOS
Responder Con Cita
  #2  
Antiguo 19-07-2014
giulichajari giulichajari is offline
Miembro
 
Registrado: nov 2012
Posts: 306
Poder: 12
giulichajari Va por buen camino
1-Si te refieres a los items de la compra? pues yo tengo una tabla ventas o tickets como quieras llamarle con e idproduco y el idticket o idmovimiento, es una relacion muchos a muchos porque un producto aparece en variops ticket y un ticket contiene varios productos.
Con respecto a la otra pregunta no se en que componente cargas los productos.
Responder Con Cita
  #3  
Antiguo 23-07-2014
patan patan is offline
Registrado
 
Registrado: sep 2007
Posts: 2
Poder: 0
patan Va por buen camino
Hola gracias por responder, en realidad lo que quiero es dejar la cabecera de la factura y todos los items en memoria y al final en caso de no surgir error realizar el post (pasarlos a la tabla)
Lo del ID de la cabecera lo solucione sacando el autoincrement de la bd, al numero lo genero desde el código
pero sucede que al recorrer el ciclo de carga de los items mientras hace "insert" lo va cargando en la tabla automaticamente y sin hacer post ¿? no entiendo.

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con tabla master detalle amell2020 Varios 4 17-11-2011 00:00:47
Problema al grabar un Master/Detail el detalle no se graba... Ricardojosep Firebird e Interbase 22 28-01-2010 21:48:53
Ejemplo Master Detalle osmar Conexión con bases de datos 2 03-03-2005 09:26:01
Trigger en master-detalle jgutti Firebird e Interbase 3 07-08-2004 02:33:58


La franja horaria es GMT +2. Ahora son las 10:08:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi