Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2005
Delphos Delphos is offline
Miembro
 
Registrado: jun 2003
Ubicación: Valencia (España)
Posts: 45
Poder: 0
Delphos Va por buen camino
Duda con Fibplus

Hola foro hace tiempo me pusieron estos ejemplos de codigo para hacer unas consultas atraves de Fibplus:

Código:
//Consulta de Inserccion con FIBDataSet
procedure TForm1.Button1Click(Sender: TObject);
 Var
   SQL : String;
begin
   
   SQL:='INSERT INTO Tabla (Campo1,Campo2,Campo3,Campo4) VALUES (:Parametro1,:Parametro2,:Parametro3,:Parametro4)';
 
    If pFIBTransaction1.InTransaction then
      pFIBTransaction1.Commit;
    pFIBTransaction1.StartTransaction;
    pFIBDataSet1.InsertSQL.Clear;
    pFIBDataSet1.SQLs.InsertSQL.Add(SQL);
    pFIBDataSet1.QInsert.ParamByName('Parametro1').AsString := Edit1.Text;
    pFIBDataSet1.QInsert.ParamByName('Parametro2').AsString := Edit2.Text;
    pFIBDataSet1.QInsert.ParamByName('Parametro3').AsString := Edit3.Text;
    pFIBDataSet1.QInsert.ParamByName('Parametro4').AsString := Edit4.Text;
    pFIBDataSet1.QInsert.ExecQuery;
    pFIBTransaction1.Commit;
   
end;


//Consulta de Eliminacion con pFIBQuery
procedure TForm1.Button2Click(Sender: TObject);
 var
  SQL: String;
begin
 
   SQL:='DELETE FROM Tabla WHERE Campo_a_eliminar = :Parametro1;

   if pFIBTransaction1.InTransaction then
         pFIBTransaction1.Commit;
     pFIBTransaction1.StartTransaction; 
     pFIBQuery1.SQL.Clear;
     pFIBQuery1.SQL.Add(SQL);
     pFIBQuery1.Params[0].Value:= Parametro1; //Tambien se puede utilizar ParamByName
     pFIBQuery1.ExecQuery;
    pFIBTransaction1.commit;
 
end;
 
// FIBDataSet (RecordSet)
  Form1.ListBox1.Clear;
  Form1.pFIBDataSet1.Open;
  Form1.pFIBDataSet1.First;
  While not Form1.pFIBDataSet1.Eof do
  begin 
  Form1.ListBox1.Items.Add(Form1.pFIBDataSet1.FieldValues['Campo1'] + ' - ' +
                      Form1.pFIBDataSet1.FieldValues['Campo2'] + ' - ' +
                      Form1.pFIBDataSet1.FieldValues['Campo3'] + ' - ' +
                      Form1.pFIBDataSet1.FieldValues['Campo4']);
   Form1.pFIBDataSet1.Next;
  end;
 
  Form1.pFIBDataSet1.Close;
 
end;
mi confucion viene con las dos primeras lineas de los codigos y cual seria el comportamiento de FireBird en esta situacion.

Código:
if pFIBTransaction1.InTransaction then
   pFIBTransaction1.Commit;
   pFIBTransaction1.StartTransaction
   ..................................
   .......Modificando DB.............
   ........................................
me explico: lo primero que se hace es preguntar si hay una transaccion y si la hay se le da commit, aqui mi confucion; si hay una trasaccion ejecutando varios cambios en la DB y esta no ha terminado los cambios ¿no estoy forzando a terminar la transaccion con este commit? por que eso es lo que parece como si estuviera formazando a terminar la transaccion. Otra cosa:
tenia entendido que FireBird creaba transacciones siempre ya sean estas implicitas o explicitas.

Salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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


La franja horaria es GMT +2. Ahora son las 02:12:27.


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
Copyright 1996-2007 Club Delphi