Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 22
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
  #2  
Antiguo 16-09-2003
Julià T. Julià T. is offline
Miembro
 
Registrado: may 2003
Ubicación: en el teclado
Posts: 314
Poder: 22
Julià T. Va por buen camino
si no recuerdo mal el applyupdates no se queja, no genera excepción, por lo que no puedes saber de este modo cuando falla, por el contrario el applyupdates, es una funcion, y como tal devuelve un valor (concretamente el numero de errores que se ha producido), por lo que con el código modificado similar al siguiente obtendrás el resultado que buscas
Cita:
if cdsDatos.ApplyUpdates(-1)<>0 then
mResultado.Lines.Add(Format(EInsercion, [IntToStr(iLinea)]));
Responder Con Cita
Respuesta



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 12:33:37.


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