Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-07-2014
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Recuperar Error en ApplyUpdates

Hola a todos...

Tengo una tabla en cache que se le cargan datos...

Imaginemos esto, supongamos una tabla Clientes, donde tenemos el ID, y el Nombre del Cliente...
Para generar ese ID, busco el mayor numero de ID en la tabla de Clientes y le sumo 1...

Ahora resulta que tengo que cargar varios clientes, dentro de una misma transaccion.. por lo que la tabla clientes esta en cached...
Recupero mi siguiente ID de clientes y a partir de aca, como la tabla esta en cached, y para la misma transaccion mi numero de ID siempre va a ser el mismo....

Cuando realizo el applyUpdates, me da error de clave duplicada... (hasta aca es tal cual necesito que ande...)

Ahora mi pregunta es, como puedo ir corriendo el ID a medida que me voy recuperando del error de clave duplicada...

Yo lo estaba haciendo en el Evento OnUpdateError de esta forma:

Código SQL [-]
  With EIBO_ISCError(E) do
    begin
      Case ErrCode of
      335544665: //PRIMARY KEY
      //if ErrorCodes[ErrorCodes.Count - 1] = '2' then //PRIMARY KEY
        begin
          spNewCodigo.Close;
          spNewCodigo.Open;

          DataSet.Edit;
          DataSet['ID']   := spNewCodigo.FieldByName('ID').AsInteger;
          DataSet.Post;
          UpdateAction := uaRetry;
        end;
      335544345:  //Lock conflict on no wait transaction
        begin
          Sleep(100); //Esperamos un tiempo para que termine la transaccion.
          UpdateAction := uaRetry;
        end
      end;
    end;

Pero me dice que el registro no puede editarse.... y si le saco el edit, me dice que el registro no esta en Edit or Insert Modes....

Saludos...
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #2  
Antiguo 10-07-2014
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Algún Ejemplo de como recuperarme de un error de clave duplicada en una query en cached....

Gracias!!!!
__________________
Saluda Atte Neeruu!!! :)
Responder Con Cita
  #3  
Antiguo 14-07-2014
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Hola.

Dos preguntotas:

1. ¿Qué componentes usas?

2. ¿Qué mensaje de error te aparece cuando intentas el Edit?

Responder Con Cita
  #4  
Antiguo 18-07-2014
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Hola Al González

Los componentes son los IbObject

El dataset llega al edit en estado browser!...

Y cuando quiero hacer el edit para corregir el numero de pieza el mensaje de error es el siguiente:

"DataSet not in edit or insert mode"

Alguna idea de como recuperar una clave duplicada en cached?

Saludos.
__________________
Saluda Atte Neeruu!!! :)
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Obtener error con applyUpdates StartKill Providers 1 11-03-2013 23:37:49
ApplyUpdates da un error 'Unsupported feature' en Delphi 2009 chiche_s Conexión con bases de datos 0 06-01-2011 02:53:32
error numeric overflow con applyupdates nugame Conexión con bases de datos 3 15-12-2008 21:15:22
Error en Applyupdates() de ClientDataSet con TIbQuery y Delphi 7 jmoran Conexión con bases de datos 1 16-07-2003 18:47:03
Error ApplyUpdates(0); raulparraco Conexión con bases de datos 4 27-05-2003 22:43:44


La franja horaria es GMT +2. Ahora son las 12:26:45.


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