Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-08-2004
xerkan xerkan is offline
Miembro
 
Registrado: jun 2003
Posts: 89
Poder: 21
xerkan Va por buen camino
Distincion de mayusculas en campos unicos

Tengo una tabla que contiene una constraint del tipo:

CONSTRAINT nombre UNIQUE(campo)

el caso es que el sistema funciona siempre y cuando en el campo se ponga un valor exactamente igual, pero me gustaria que no se pudiera poner en los campos alfanumericos campos iguales pero uno en minusculas y otro en mayusculas (que se consideren como campos repetidos "campo" y "CAMPO")
Responder Con Cita
  #2  
Antiguo 31-08-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Hola,

No podrías hacerlo con un trigger y un Upper del campo?
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #3  
Antiguo 31-08-2004
xerkan xerkan is offline
Miembro
 
Registrado: jun 2003
Posts: 89
Poder: 21
xerkan Va por buen camino
Si que podria hacer un triger que hiciera un select * where Upper(campo)=Upper(valor) y si devuelve un valor que saltara un error es mas lo podria hacer en delphi pero queria saber si hay alguna forma mas sencilla en el contraint de la sentencia sql
Responder Con Cita
  #4  
Antiguo 01-09-2004
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
Si creas un dominio del tipo varchar(x) para tu campo unico y que este solo acepte mayusculas (no tengo en este momento el código deja que lo voy a buscar, era de un ejemplo que encontre una vez)
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
  #5  
Antiguo 01-09-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por xerkan
Si que podria hacer un triger que hiciera un select * where Upper(campo)=Upper(valor) y si devuelve un valor que saltara un error es mas lo podria hacer en delphi pero queria saber si hay alguna forma mas sencilla en el contraint de la sentencia sql
Lo conveniente es tener establecido el constraint, y en el trigger before insert/before update, asegurarse de convertir el valor siempre a mayúsculas o a minúsculas, puesto que interbase/firebird no tiene indices insensibles a mayúsculas/minusculas. Todo en esta bd, es case sensitive.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


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


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