| 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 funciones.CapIdArt; with dmLogicaArticulos.qIngresaArt do
try
finally
ExecSql;
end;
with dmlogicaarticulo.qinsertaotracosa etc
try
......
finally
....
end;
with dmLogicaArticulos.qArt_Marca do 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' + 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
begin
frmPrincipal.CerrarPestana;
end
else begin
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
|