PDA

Ver la Versión Completa : TIBDataset + Firebird


mjjj
01-02-2010, 21:39:17
hola gente del foro, tengo un problemita con TIBDataset.
Utilizo Delphi 2006, Firebird 2.0 y los componentes de la paleta de Interbase.

Utilizo un IBDataset para insertar un registro, so se efectua perfectamente, es decir se observa en el grid asociado al Dataset.

Íncluso puedo insertar varios registros, y todos ellos se observan en el grid, el problema es que después me interesa confirmar estos cambios en la BD realizando un commit.

Luego de esto consulto por los registros insertados, y estos no estan por ninguna parte.

Agrego el codigo que utilizo


var n: integer;
if ibdataset1.Active = false then
IBDATASET1.Open;

ibdataset1.last;
n := ibdataset1.FieldByName('ncorr').AsInteger;

ibdataset1.fieldbyname('empresa').AsString := form1.Label1.caption;
ibdataset1.fieldbyname('noc').Asinteger := scurrencyedit1.AsInteger;
ibdataset1.fieldbyname('ncorr').Asinteger := n + 1;
if (copy(ibquery2.FieldByName('codigo').AsStrinG,1,1) = 'S') then ibdataset1.fieldbyname('inv').asstring:='0'
else ibdataset1.fieldbyname('inv').asstring:='1';
ibdataset1.fieldbyname('cod_insum').Asinteger :=STRTOINT(copy(ibquery2.FieldByName('codigo').AsString,3,8));
ibdataset1.fieldbyname('unidad').AsString :=ibquery2.FieldByName('UNIDAD').AsString;
ibdataset1.fieldbyname('DESCRIP_INS').AsString :=ibquery2.FieldByName('NOMBRE').AsString;
ibdataset1.Post;


de esta forma inserto varios registro, y luego, una vez de estar seguro, ejecuto el commit de la transacción.

Alguien me podra enviar un ejemplo con inserción, modificación y eiliminación de registros con un TIBDataset.

Espero me puedan ayudar.

Saludos

marcoszorrilla
01-02-2010, 22:11:15
En vez de
IBdataset.Last;
//pon
IbDataset1.Insert;

Un Saludo.

mjjj
01-02-2010, 22:13:25
si lo tengo puesto, se me traspapelo al traspasar el codigo al procesador de texto del foro.

incluso he probado por insert y con append, y no pasa nada.

marcoszorrilla
02-02-2010, 06:52:11
Mira a ver si tienes CacheUpdates activado y si es así desáctivalo.

Un Saludo.

José Luis Garcí
02-02-2010, 08:54:28
Una consulta, has echo algún cambio en la estructura de la basa de datos, si es asi, haz generado de nuevo en el Ibdataset, por que si no llo haces te puede dar problemas y por ultimo, por que no usas despues del post un comitretain (creo que se escribe así. Jo, no di ni una quise decir ReadCommited.

Espero poder ayudarte.

Young
02-02-2010, 21:51:42
Me parece que puede estar relacionado con la transaccion, es decir poner la transacciòn en ReadCommited. Esto lo puedes configurar haciendo doble click sobre el componente transaction.

Saludos.