Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-08-2019
jilc1111 jilc1111 is offline
Registrado
 
Registrado: jul 2013
Posts: 6
Poder: 0
jilc1111 Va por buen camino
Duplicidad de registros

Saludos a todos.

Tengo una base de datos SQL Server 2017 la cual gestiono desde una aplicacion desarrollada en Delphi 2010.

En mi base de datos tengo una tabla Facturas que contiene entre otros los siguientes campos:

ID BIGINT (Obtiene su valor de una secuencia)
CLIENTE VARCHAR(20)
FECHA DATE
PREFIJO CHAR(4)
NUMERO BIGINT (este campo obtiene su valor de otra tabla que controla el consecutivo de según el prefijo)
TOTAL MONEY

El campo ID es la llave primaria y los campos PREFIJO y NUMERO conforman una llave única.

Adicionalmente tengo un procedimiento almacenado que inserta registros en esta tabla.

Por alguna razón que desconozco se estan insertando "registros duplicados" desde la aplicación.
Es decir, se graba una factura, la aplicación despues de ejecutar el procedimiento de inserción genera un reporte en pdf que el usuario imprime y posteriormente se inserta otro registro con datos distintos (CLIENTE, TOTAL) pero los mismos PREFIJO y NUMERO.

Aclaración. En la base de datos solo persiste uno de los dos registros pero la aplicación permite generar al momento de la inserción los dos reportes con todos los datos como si ambos registros existieran el la base de datos.

He revisado los datos y no hay saltos en el consecutivo ID.

Es como si la base de datos retrocediera en el tiempo despues de insertar el primer registro.

Espero haber sido claro en mi explicación y que alguien pueda darme una luz sobre este tema.
Responder Con Cita
  #2  
Antiguo 24-08-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Eso tiene toda la pinta de ser un error del código y me temo que poco te vamos a poder ayudar. Yo no he trabajado nunca con SQL Server pero, si no encuentras el problema, imagino que podrás crear una regla en la base de datos para que cuando se duplique por esos campos de un mensaje de error. De esa manera podrías chequear en qué momento falla.


Saludos
__________________
Be water my friend.
Responder Con Cita
  #3  
Antiguo 24-08-2019
jilc1111 jilc1111 is offline
Registrado
 
Registrado: jul 2013
Posts: 6
Poder: 0
jilc1111 Va por buen camino
Gracias por tu respuesta.

No creo que sea un error en la programacion pues la aplicación viene funcionando de forma correcta hace mas de un año y no se han realizado modificaciones que puedan causar esto. Lo único que hice es migrar la base de datos de SQL Server 2012 a SQL Server 2017.

Aquí comenzaron los problemas.
Responder Con Cita
  #4  
Antiguo 24-08-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si tienes una clave única "prefijo+número" y se repiten, está claro que no es una clave única.
Responder Con Cita
  #5  
Antiguo 25-08-2019
jilc1111 jilc1111 is offline
Registrado
 
Registrado: jul 2013
Posts: 6
Poder: 0
jilc1111 Va por buen camino
Gracias por responder.

Si es una clave única (PREFIJO, NUMERO).

Tal vez no fui lo suficientemente claro.

La cuestión es que se crea un registro PREFIJO+NUMERO, el usuario imprime un documento físico y por alguna razón en el futuro se inserta otro registro con datos totalmente distintos pero con el mismo PREFIJO+NUMERO pero sólo uno de los dos persiste en la base de datos, es como si el primer registro nunca hubiese existido.

Como lo mencioné en mi primer comentario, el ID generado por la secuencia no tiene saltos.
Responder Con Cita
  #6  
Antiguo 25-08-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pues alguien hace un update.
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
como eliminar la duplicidad de datos pame SQL 1 30-09-2013 18:57:03
Problemas para controlar la duplicidad de registros loquillo3 Varios 12 13-09-2012 04:24:10
Duplicidad de registros jimmy_aei Firebird e Interbase 10 05-01-2012 22:05:43
comprobar duplicidad campos sql gonza_619 Varios 4 16-09-2010 16:40:50
por que duplicidad de registros con clientdataset sin ingresar registros ...mysql Arturo MySQL 3 05-09-2006 18:39:37


La franja horaria es GMT +2. Ahora son las 23:09:40.


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