Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-05-2011
RedVenom RedVenom is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tabasco, Mexico
Posts: 110
Poder: 21
RedVenom Va por buen camino
Es que la base de datos sola me devuelve ese error cuando intento duplicar una llave primaria lo que deseo es interceptarlo para que yo muestre mi propio mensaje, no me convence lo de crear una funcion tendria que estar llamando a la funcion cada vez que agrego un registro cuando la base de datos ya te da el mensaje.
Responder Con Cita
  #2  
Antiguo 25-05-2011
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 24
BlueSteel Va por buen camino
Cita:
Empezado por RedVenom Ver Mensaje
Es que la base de datos sola me devuelve ese error cuando intento duplicar una llave primaria lo que deseo es interceptarlo para que yo muestre mi propio mensaje, no me convence lo de crear una funcion tendria que estar llamando a la funcion cada vez que agrego un registro cuando la base de datos ya te da el mensaje.

Creo que deberias pensar mejor lo de la funcion...

Si bien la base te envia un mensaje cuando el codigo de registro esta duplicado, para un sistema en donde se ingresa un registro con grandes cantidades de información... (por unos 30 0 50 campos por lo minimo)... haras que el usuario digite todos los campos.... y cuando presiones guardar se de cuenta que ya existe?

Creo que lo mejor es ingresar el campo clave (codigo, campo clave o como lo llames) y preguntar si en la base existe algun registro con dicho codigo.. si existe lanzas el mensaje que existe un registro... en caso contrario sigues ingresando....


Salu2
__________________
BlueSteel
Responder Con Cita
  #3  
Antiguo 25-05-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por BlueSteel Ver Mensaje
Creo que lo mejor es ingresar el campo clave (codigo, campo clave o como lo llames) y preguntar si en la base existe algun registro con dicho codigo.. si existe lanzas el mensaje que existe un registro... en caso contrario sigues ingresando....
Esto tiene el problema de concurrencia que ya han mencionado. Lo que he hecho a veces, para evitar la captura innecesaria es:

1. Preguntar la clave.
2. Insertar un nuevo registro con esa clave.
3. Esperar... (a ver qué dice el servidor )
4. Presentar un formulario para llenar los datos restantes.
5. Hacer el UPDATE a la base.

Por cierto, además del try-except también puede usarse el evento OnPostError del DataSet.

// Saludos
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
Cuando elegir una particion primaria y cuando una extendida o logica JoAnCa Varios 1 17-05-2008 23:35:43
Mensaje para no duplicar la clave primaria de la base de datos ivansito PHP 8 08-08-2007 00:53:51
Como copiar un registro cambiando el campo de clave primaria Javi2 SQL 2 17-09-2004 20:49:50
cambiar la clave primaria con SQL User_Baja_2 SQL 8 18-06-2004 08:41:31
cambiar una clave primaria User_Baja_2 SQL 3 06-10-2003 18:03:38


La franja horaria es GMT +2. Ahora son las 20:37:51.


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