PDA

Ver la Versión Completa : Pasar de IBQuery a IBDataSet


NISOTO
22-11-2013, 00:09:41
hola a todos,

Como diablos paso esto de un ibquery a un ibdatadset, no quiero trabajarlo en ibquery. trabajo firebird 2.5 y delphi 2007

begin
DMCarga.ibqry_Calificacion.Close;
DMCarga.ibqry_Calificacion.Sql.Clear;
DMCarga.ibqry_Calificacion.Sql.Add('UPDATE calificacion');
DMCarga.ibqry_Calificacion.Sql.Add('SET MATERIA=(SELECT materia FROM salones WHERE materia = materia)');
DMCarga.ibqry_Calificacion.Sql.Add('AND id_salon = id_salon');
DMCarga.ibqry_Calificacion.Open;
end;

porfa

RONPABLO
22-11-2013, 04:11:50
en los ibx necesita una transacción (ibTransaction) relacionada a la base de datos (ibdatabase), puedes buscar como configurar la transacción.

begin
DMCarga.ibqry_Calificacion.Close;
DMCarga.ibqry_Calificacion.Sql.Clear;
DMCarga.ibqry_Calificacion.Sql.Add('UPDATE calificacion');
DMCarga.ibqry_Calificacion.Sql.Add('SET MATERIA=(SELECT materia FROM salones WHERE materia = materia)');
DMCarga.ibqry_Calificacion.Sql.Add('AND id_salon = id_salon');
DMCarga.ibqry_Calificacion.ExecSQL;
DMCarga.IBTransaction1.commit;
end;

ecfisa
22-11-2013, 05:51:41
Hola NISOTO.

Además de las correctas observaciones que te hizo RONPABLO, en este enlace tenes explicado de forma básica el uso de los componentes IBX:
Delphi, conexión a firebird con componentes IBX (http://www.intitec.com/varios/Delphi_conexion_firebird_con_ibx.pdf) (busca por IBDataSet)

Saludos :)

NISOTO
22-11-2013, 06:38:50
Hola RONPABLO y ecfisa

Gracias por responder, pero mi pregunta es si este codigo que tengo con un IBQuery, como lo puedo implementar para un IBDataSet, ya que lo probe y me lanza error, ademas ya tengo todo configurado con el IBDatabase y el IBTransaction.

se puede utilizar esto:
.Sql.Add en un IBDataSet

Casimiro Notevi
22-11-2013, 09:59:13
Te han respondido, te han escrito el código, te lo han explicado y te han enlazado un documento con ejemplos y todo.... y vas y dices: "lo probe y me lanza error", no somos adivinos ;)

Caminante
22-11-2013, 16:16:24
Hola
Tal vez podrías usar la propiedad ModifySql ya que veo que quieres realizar un update

IBDataSet1.ModifySQL.Clear;
IBDataSet1.ModifySQL.Add('tu sql');

Pero veo qu quieres ejecutar directamente la sentencia y ahi ya no te serviria mucho ya que el sql escrito ahi
se ejecuta al hacer post (como si se tratara de una TIBTable).

En tal caso podria probar con un objeto IBUpdateSQL.

Saludos

NISOTO
22-11-2013, 18:05:35
Gracias, Caminante

Eso era lo que queria que me explicaran.

El maestro no aprendio sabiendo y la insistencia siempre produce frutos.