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)
-   -   Añadir Registro con TFIBDataSet (https://www.clubdelphi.com/foros/showthread.php?t=42503)

Rockin 16-04-2007 17:43:15

Añadir Registro con TFIBDataSet
 
Hola a todos, soy totalmente novato con firebird y sus componentes, anteriormente ha trabajado con ADO y Paradox, y muy bien, pero decidií cambiar a firebird.

He conseguido conectar la BD, utilizar la librería.
Tengo un FIBDataBase, FIBTransaction y un FIBDataSet. El problema es que al insertar datos, me da el siguiente error 'Can´t prepare Form1.FIBDataSet, because query is empty'. He mirado muchos hilos y no saco nada en claro.
EL código que tengo puesto es este:

pFIBDataSet1.InsertSQL.Add('insert into datos (nombre) values ("prueba")') ;
pFIBDataSet1.Open;
pFIBDataSet1.Append;
pFIBDataSet1.Insert;
pFIBDataSet1.Post;
pFIBTransaction1.Commit;

Gracias.

gluglu 16-04-2007 17:53:14

Te dá error porque seguramente en el SELECTSQL no tengas nada escrito, y lo que estás intentando hacer es abrir el DataSet con un 'Open', por lo que va a ir a ejecutar la sentencia que tengas en el SelectSQL.

Una de dos, o ejecutas el comando Insert que quieres, para ello debes de colocar ese comando en la propiedad SelectSQL de tu Dataset, y después en vez de abrirlo con 'Open', lo ejecutas con ExecSQL,

o bien ...

lo más lógico sería que tuvieras un DataSet completo, con todos los SQL correspondientes, es decir tanto el SelectSQL, como el InsertSQL, el DeleteSQL y el RefreshSQL.

Ademas, con la sentencía Append se ejecuta automáticamente la sentencia InsertSQL que hayas puesto. No es necesario volver a ejecutar 'Insert'.

Busca algo en los foros que hay documentación de sobra. Si tienes alguna duda más en concreto, aquí estamos ! ;)

Lepe 16-04-2007 17:56:10

Empieza por este hilo

Interbase o Firebird no se parece en nada a Paradox, tiene sus conceptos y sus metodologías, debes empezar por estudiarlos.

Saludos

Sinaloense 16-04-2007 18:05:59

Seria:

pFIBDataSet1.InsertSQL.Add('insert into datos (nombre) values (:nombre)') ;
pFIBDataSet1.Open;
pFIBDataSet1.Append;
pFIBDataSet1.FN('nombre').AsString = 'dato';
pFIBDataSet1.Post;
pFIBTransaction1.Commit;


Cita:

Empezado por Rockin
Hola a todos, soy totalmente novato con firebird y sus componentes, anteriormente ha trabajado con ADO y Paradox, y muy bien, pero decidií cambiar a firebird.

He conseguido conectar la BD, utilizar la librería.
Tengo un FIBDataBase, FIBTransaction y un FIBDataSet. El problema es que al insertar datos, me da el siguiente error 'Can´t prepare Form1.FIBDataSet, because query is empty'. He mirado muchos hilos y no saco nada en claro.
EL código que tengo puesto es este:

pFIBDataSet1.InsertSQL.Add('insert into datos (nombre) values ("prueba")') ;
pFIBDataSet1.Open;
pFIBDataSet1.Append;
pFIBDataSet1.Insert;
pFIBDataSet1.Post;
pFIBTransaction1.Commit;

Gracias.



La franja horaria es GMT +2. Ahora son las 06:20:16.

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