Ver Mensaje Individual
  #1  
Antiguo 15-09-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Reputación: 24
mosorio Va por buen camino
Continuando con dbExpress

Hola!

Agradezco la ayuda que me han dado primero que todo a todos (valga la redundancia).

El tema es el siguiente, he logrado insertar los registros en la tabla desde el archivo texto, pero el problema es que no me permite capturar correctamente los errores que se pueden presentar. Ejemplo cuando se me presentaba ese error del character set, quería que me lo mostrara en un memo, pero no lo hace, le he colocado los números posibles en el applyupdate pero no funciona. Si coloco el -1 continúa como si nada e inserta los que pueda sin chistar, si coloco el 0 solo inserta hasta donde encuentra el error o se bloquea.
Esta es parte de la rutina que implemento:
Código:
  for iFil := 1 to sgFuente.RowCount - 1 do
    begin
      cdsDatos.Insert;
      iLinea := iFil;
      for iCol := 0 to cdsDatos.FieldCount - 1 do
        cdsDatos.Fields[iCol].AsString := sgFuente.Cells[iCol, iFil];
      cdsDatos.Post;
      try
        cdsDatos.ApplyUpdates(-1);
        mResultado.Lines.Add(Format(MLineaOK, [IntToStr(iLinea)]));
      except On E: Exception do
         mResultado.Lines.Add(Format(EInsercion, [IntToStr(iLinea)]) + E.Message);
      end;
    end;
Cuando efectúo la inserción, si todo va OK, en el memo inserta una línea con el mensaje indicado, pero si da cualquier error, debe insertar el mensaje de error y la línea afectada, con esto se puede saber cual y cuantas líneas se han migrado a la tabla y las que no saber los posibles motivos y no perder tanto tiempo.

Si estoy haciendo algo mal, espero que con esta parte del código me ayuden a aclararlo, pero creo que no esta mal, lo que sucede es que no se como poder capturar el momento cuando ocurre un error e insertar el mensaje y que continúe con el ciclo sin que se interrumpa el resto como sucede si coloco 0 al applyupdate, mostrando los mensajes de inserción satisfactoria.

Bueno amigos gracias nuevamente

Última edición por andres1569 fecha: 16-09-2003 a las 13:35:41.
Responder Con Cita