Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Lo que quería decir es que si un usuario saca un listado de nóminas (por ejemplo) y va un momento a por un café, cuando vuelva, en 5 minutos, ese listado ya puede estar obsoleto porque otro usuario ha podido hacer modificaciones en los datos, por lo que el usuario1 tiene ya un listado "obsoleto".

Creo que en tu caso no te queda otra que comprobar que no exista ya, antes de grabar.
Responder Con Cita
  #2  
Antiguo 26-09-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
es exactamente lo que me temia... me gustaria evitar tener que realizar una consulta justo antes de insertar.

Existe alguna forma de bloquear el registro de este "tomado" por algun usuario, a lo mejor con alguna propiedad de la transaccion?

Otra alternativa, programar en la capa de la BD, quizas con el algún trigger, la idea es evitar esto en la capa del interfase con el usuario.

Como se manejan estas situaciones por regla general?

Salu2
Responder Con Cita
  #3  
Antiguo 26-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
No entiendo bien el funcionamiento del sistema, pero ¿puede existir en la tabla Nomina dos registros con id_nomina, id_factura repetidos?
En caso contrario puedes crear un índice id_nomina+id_factura y que no admita repetidos.
Responder Con Cita
  #4  
Antiguo 26-09-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
eso es exactamente como es la clave primaria: id_nomina-id_factura, lo que si se puede repetir es id_factura en la tabla nomina, ya que puede haber una factura en mas de una misma nomina.
Responder Con Cita
  #5  
Antiguo 26-09-2012
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 20
mjjj Va por buen camino
Ayer me quede hasta hartas horas de la noche investigando como resolver esto.
Finalmente encontre un documento que explica como utilizar trigger y excepcion para incluir restriccionos directamente en la BD.
De esta forma ya no es necesario verificar por parte del cliente el las restricciones, sino que lo verifica la misma BD.
Espero que a alguien le sirva, dejo el link de descarga.

http://www.firebird.com.mx/imagenes/...esde_la_bd.pdf

Saludos.
Responder Con Cita
  #6  
Antiguo 26-09-2012
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Está bien que te sirva, aunque no le veo mucha relación con este tema
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Nuevas Reglas de la RAE marcoszorrilla La Taberna 13 15-11-2010 18:56:01
Las 11 reglas de la vida (Bill Gates) Casimiro Noteví La Taberna 14 12-11-2010 19:27:28
Un ejemplo de reglas de negocio CORBATIN Conexión con bases de datos 5 03-04-2005 01:28:20
OutLook con reglas cmgenny Windows 0 18-08-2003 21:18:13
Ejemplo de reglas en capa intermedia Ulises Conexión con bases de datos 7 07-08-2003 14:08:12


La franja horaria es GMT +2. Ahora son las 16:56:43.


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