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)
-   -   TIBDataset + Firebird (https://www.clubdelphi.com/foros/showthread.php?t=66095)

mjjj 01-02-2010 21:39:17

TIBDataset + Firebird
 
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

Código Delphi [-]
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
Código Delphi [-]
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.


La franja horaria es GMT +2. Ahora son las 06:05:21.

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