Club Delphi  
    Paypal   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

 
 
Herramientas Buscar en Tema Desplegado
  #8  
Antiguo 23-06-2004
CHiCoLiTa CHiCoLiTa is offline
Miembro
 
Registrado: may 2003
Posts: 102
Poder: 24
CHiCoLiTa Va por buen camino
El rollback lo hacia, porque si el proceso se para por clave duplicada y la ejecucion del programa termina, cuando vuelven a empezar todos los registros ya estarian duplicados porque los copio en la primera pasada.

Y el abort, para evitar que me muestre el mensaje de error, y mostrar el que yo quiera, no los 2

Al hacer lo que me comento jachguate, el programa sigue parando al encontrar un duplicado

Este es el codigo que tengo puesto ahora mismo para hacer las pruebas con lo que me dijeron, por si veis algo anormal

Código Delphi [-]
procedure TDataModule2.TCt_totalPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
var
   Texto : string;
begin
   if (E is EDatabaseError) then
     if Pos('PRIMARY KEY', UpperCase(E.Message)) <> 0 then
     begin
        Texto := 'Duplicado el registro con ID: ' + QEasy.FieldByName('ID_CT').AsString;
        Application.MessageBox(PChar(Texto), 'Registro duplicado',mb_Ok+MB_ICONEXCLAMATION);
        TCT_TOTAL.cancel;
     end;
end;

QEasy es la tabla origen
TCT_TOTAL es la talba destino
Conexion con ADO y las 2 tablas estan en diferentes bases de datos, por eso no hago el insert

De este modo es como copio los datos de una tabla a otra

Código Delphi [-]
           while not QEasy.Eof do
           begin
              TCT_TOTAL.Append;
              for i := 0 to QEasy.Fields.Count - 1 do
                  TCT_TOTAL.Fields[i].Value := QEasy.Fields[i].Value;
              TCT_TOTAL.Post;
              QEasy.Next;
           end;

Última edición por CHiCoLiTa fecha: 23-06-2004 a las 16:29:37.
Responder Con Cita
 



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 15:00:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi