Ver Mensaje Individual
  #1  
Antiguo 18-07-2014
patan patan is offline
Registrado
 
Registrado: sep 2007
Posts: 2
Reputación: 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