Tema: Problema
Ver Mensaje Individual
  #4  
Antiguo 07-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Reputación: 17
gabrielkc Va por buen camino
Cita:

DataModule1.IBDataSet2.Active := False; DataModule1.IBDataSet2.SelectSQL.Clear; //Borro SQL anteriores
DataModule1.IBDataSet2.SelectSQL.Text := 'SELECT ID, Marcaje, Parada, Entrada, Remate, TiroLibre, Desmarque, Creatividad, Regate, Pase, Control FROM JUGADORES';
DataModule1.IBDataSet2.Prepare;
DataModule1.IBDataSet2.Active := True;//Esta linea no es necesaria
DataModule1.IBDataSet2.Open;



No es necesario que Actives el IBDataSet y luego llames el Open
el procedimiento Open Activa el DataSet



DataModule1.IBDataSet2.First;
No es necesario que llames el First ya que acabas de abrir el
Dataset este se encuentra en el primer registro

Cita:
// DataModule1.IBTransaction1.Commit; //Ejecuto la SQL


El commit no ejecuta el SQL, quien ejecuta el SQL es el ExecSQL
el commit guarda definitivamente los datos en la BD
2-Estas lineas me cerraban el IBDataSet2 y me daba un error asi q las ejecuto al final del todo. No hay problema con eso no ??


Código Delphi [-]
     DataModule1.IBTransaction1.Active:= False;  //esta es la q cierra el IBDataSet2        
     DataModule1.IBTransaction1.StartTransaction;        
     DataModule1.IBTransaction1.Commit; //Ejecuto la SQL



No es necesaria esta última parte, despues de cada registro insertado debes llamar el Commit, pero no es necesario que Desactives la Transaccion.

Es decir el Commit debería ir en el Try en el que llamas el ExcelSQL no al final del While

Última edición por marcoszorrilla fecha: 07-07-2007 a las 17:31:05.
Responder Con Cita