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; DataModule1.IBTransaction1.StartTransaction;
DataModule1.IBTransaction1.Commit;
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