![]() |
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. |
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 ! ;) |
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 |
Seria:
pFIBDataSet1.InsertSQL.Add('insert into datos (nombre) values (:nombre)') ; pFIBDataSet1.Open; pFIBDataSet1.Append; pFIBDataSet1.FN('nombre').AsString = 'dato'; pFIBDataSet1.Post; pFIBTransaction1.Commit; Cita:
|
La franja horaria es GMT +2. Ahora son las 21:44:43. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi