Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 27-01-2009
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Poder: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
CommitRetaining es diferente a Commit.

CommitRetaining graba los datos, pero no libera la transacción. La sigue manteniendo abierta. Esto es útil en el caso de que estés entrando el detalle de una factura, por ejemplo. Después de cada línea haces un CommitRetaining y sigues insertando.

Si haces un Commit, la transacción graba los datos y finaliza. Para poder insertar otro dato tendrás que abrir otra. La contrapartida de esto, es que si haces un Commit después de cada línea de la factura, se cerrará el dataset y deberás volver a abirlo y posicionarte en el último registro.

Si solo deseas insertar, creo que deberías hacerlo más o menos así:

Código Delphi [-]
procedure TDMFactura.Insertar(Dato : string);
var
  Q : TFIBQuery;
begin
   {Creo el Query}
   Q := TFIBQuery.Create(nil);
   with Q do
   begin
      Close;
      DataBase := DMMain.DataBase ;
      {Creo la transacción del Query}
      Transaction := TFIBTransaction.Create(nil);
      Transaction.TRParams.Add('read_committed');
      Transaction.TRParams.Add('rec_version');
      Transaction.TRParams.Add('nowait');
      Transaction.DefaultDataBase := DMMain.DataBase;

      {Comieza transaccion}
      Transaction.StartTransaction;

      SQL.Text := 'insert into tabla (dato) values (?dato)';
      Params.ByName['DATO'].AsString := Dato;
      ExecQuery;

      {Finaliza transaccion}
      Transaction.Commit;
   end;

   {Libero el Query creado}
   FreeAndNil(Q);
end;

Última edición por duilioisola fecha: 27-01-2009 a las 18:53:44.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Firebird 1.5.4 funciona en Win Vista pero Firebird 2.0.1 NO !!! Hagen Firebird e Interbase 5 19-05-2007 21:17:54
Firebird 1.5.3 Error:No puede ejecutarse Firebird Guardian xq ya hay una instancia Delphius Firebird e Interbase 5 26-01-2007 10:19:20
alguien ha utilizado Firebird DDX provider? (conectarse con db en firebird!) JuanErasmo .NET 1 04-11-2006 16:17:12
Firebird : Llamado para probadores de Firebird 2.0 JOSEPE Firebird e Interbase 0 12-03-2005 20:33:18
Problemas Firebird Super Server 1.5 con RFunc Firebird v 1.0 Prophoenix Firebird e Interbase 1 09-03-2004 11:40:48


La franja horaria es GMT +2. Ahora son las 09:21:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi