Ver Mensaje Individual
  #4  
Antiguo 28-08-2007
Avatar de JoseAntonio
JoseAntonio JoseAntonio is offline
Miembro
 
Registrado: abr 2006
Ubicación: Lima - Ciudad de los Reyes.
Posts: 87
Reputación: 19
JoseAntonio Va por buen camino
Question Transacciones Anidadas

bueno yo tengo el siguiente codigo y tampoco funciona, alguien tiene idea de por que

Código Delphi [-]
    begin
      dm_datos.ADOConnection1.BeginTrans;
      try
      DM_Datos.ADO_TFamiliaStock.Edit;
      DM_Datos.ADO_TFamiliaStock.FieldByName('Nombre').AsString := ed_Nombre.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('CodFamiliaStock').AsString := ed_CodFamiliaStock.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('Descripcion').AsString := ed_Descripcion.Text;
      DM_Datos.ADO_TFamiliaStock.FieldByName('UnidadDeMedida').AsString := ed_UnidadDeMedida.Text;
      idfst:= dm_datos.Ado_TFamiliaStock.Fieldbyname('IdFamiliaStock').AsInteger;
      //DM_Datos.ADO_TFamiliaStock.FieldByName('Cantidad').AsString := ed_Cantidad.Text;
      DM_Datos.ADO_TFamiliaStock.Post;
      MessageDlg('Los datos fueron modificados para el registro: '+#13+ed_Nombre.Text,mtWarning,[mbOk],0);
      iStockActual:= dm_datos.GivmeStockActual(idfst);
      iStockDeseado:= StrToInt(ed_cantidad.text);
      bIsSerial0:= dm_datos.IsSerial0(idfst);
      if (iStockDeseado <> IStockActual) and bIsSerial0 then
       if iStockDeseado > iStockActual then
         dm_datos.CrearStock( idfst, IStockDeseado-IStockActual)
                                        else
         dm_datos.EliminarStock(idfst, IStockActual- IStockDeseado);
      //BCancelar.Click;
      BEditar.Caption := '&Editar';
      except
        on E:Exception do dm_datos.ADOConnection1.RollbackTrans;
      end;//try
    end;

pero cuando le quito la transaccion, el codigo si trabaja bien, cabe indicar que los procedimientos : dm_datos.CrearStock y dm_datos.EliminarStock, hacen uso de la misma conexion de la transaccion, pero no usan transacciones, o eso creo
__________________
nuestro carácter está reflejado en cada línea de código que escribimos.
Responder Con Cita