¿ Es posible realizar una inserción sin tener una transaccion abierta ?
Hola amigos mi duda es la siguiente:
Deseo utilizar un TIBDataSet que se almacene en memoria mientras le realizo operaciones de borrado, insercion, modificacion, etc ... y en el momento que deseo realmente guardar o cancelar los cambios entonces abrir la transaccion y realizar los cambios. La idea es que la transaccion se mantenga abierta el menor tiempo posible y solamente realizar operaciones con tablas imaginarias momentaneamente sin tener los DataSet abiertos ni la Transacción. Cuando inserto un registro y el DataSet esta cerrado, entonces me marca error porque el DataSet esta cerrado. Si abro el DataSet se abre la transacción y eso es justamente lo que no quiero. Trato de usar CachedUpdates pero igual tengo que abrir los DataSet para realizar las inserciones y borrados. De antemano gracias. |
podrias intentar introducir tus datos a un stringrid y ya cuando llegue el momento de guardar los datos pasar los campos de las celdas a tu dataset que seria algo asi:
IBTransaction1.Active:=True; IBDataSet.Active:=True; for y1:=1 to y-1 do //y es la cantidad de registros que hay en el stringgrid begin IBDataSet1.Insert; IBDataSet1.FieldByName('clave').AsInteger:=strtoint(stringgrid.Cells[0,y1]); IBDataSet1.FieldByName('nombre').AsString:=stringgrid.Cells[1,y1]; IBDataSet1.FieldByName('tel').AsInteger:=strtoint(stringgrid.Cells[2,y1]); IBDataSet1.Post; end; IBTransaction1.Commit; eso lo puedes poner en un boton, espero te sirva de algo |
La franja horaria es GMT +2. Ahora son las 14:24:33. |
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