Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   conjunto de datos no insertan en la BD (https://www.clubdelphi.com/foros/showthread.php?t=85210)

novato_erick 14-02-2014 22:05:44

conjunto de datos no insertan en la BD
 
hola chicos he tenido ultimamente unos comportamientos extraños en el sistema el cual por medio del componente DBExpress realizo insersiones actualizaciones en firebird.

ultimamente e visto que en las multiples tablas que realizo una insersion de producto enviando el id del producto a varias tablas 10 mas o menos por lo general en dos de ellas falla la insersion.

este es mas o menos como lo manejo:

Código Delphi [-]
 trnIngresaArticulos := dmConecta.FBLINUXCONECTION.BeginTransaction;
try // inicia proceso
    funciones.CapIdArt;// funcion que captura un id de un generador reservando dicho id
    with dmLogicaArticulos.qIngresaArt do
      try
        ///ago insersiones
      finally
        ExecSql;
      end;
    //asi me la paso insertando en cada tabla
   with dmlogicaarticulo.qinsertaotracosa etc
     try
     ......
     finally
     ....
     end; 
     with dmLogicaArticulos.qArt_Marca do //pero a k es que tengo problemas en donde no se inserta los datos en ocasiones...
        try
          Close;
          sql.clear;
          sql.Add('insert into ARTXMARCA(ID_ARTICULO, ID_MARCA) ');
          sql.Add('values(:pId_Articulo, :pId_Marca)');
          parambyname('pId_Articulo').AsInteger := idArticulo;
          parambyname('pId_Marca').AsInteger := id_Marca;
        finally
          ExecSql;
        end;
    end;
 dmConecta.FBLINUXCONECTION.CommitFreeAndNil(trnIngresaArticulos);
    ShowMessage('Articulo Agregado Satisfactoriamente');
  except
    on e: exception do
    begin
      // ShowMessage('Articulo no Fue ingresado Correctamente');
      ShowMessage('Articulo no Fue ingresado Correctamente' + e.Message);
      dmConecta.FBLINUXCONECTION.RollbackFreeAndNil(trnIngresaArticulos);
      Raise;
    end;
  end;
  if Application.MessageBox('¿Desea Agregar Otro Articulo?', 'Confirmación',
    MB_ICONQUESTION OR MB_YESNO) = ID_NO then
  // Aqui confirmamos si seguimos mas registros o cerramos el form
  begin
    frmPrincipal.CerrarPestana;
  end
  else // si no cerramos limpiamos nuestros componentes y variables del form
  begin
    // componentes dentro del tab sheet1
    // cbxDeptosArt.clear;
    DtpFechaIngreso.DateTime := Now;
    eCodBarra.clear;
    mNombre.clear;
    cbxTallas.clear;
  end;

ah por supuesto la aplicacion la tienen 15 usuarios ingresando... repito no es todo momento...


Saludos


La franja horaria es GMT +2. Ahora son las 06:27:23.

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