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 09-06-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Usando la cláusula LIKE

Hola.

Estoy migrando una base de datos construirda en MS-SQLServer 7 a InterBase (7).

Tengo el siguiente DDL:

CREATE TABLE demo(
idcad CHAR(2) CONTRAINT nombrerestriccion CHECK (idcad LIKE '[0-1][1-5]')
);

lo cual significa que el campo idcad sólo puede tener los caracteres 0 y 1 en la primera posición, y del 1 al 5 en la segunda.

Ahora, cuando creo esta tabla en InterBase, la creación se produce sin problemas, sin embargo la restricción CHECK no funciona. He tratado de interpretar la sintaxis tal como se encuentra en la referencia el lenguaje, y también he buscado ejemplos, pero todavía no doy con la solución.

Cómo puedo hacer que funcione?

Gracias.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
Responder Con Cita
  #2  
Antiguo 10-06-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Ya tengo una respuesta:

Si escribo el script DDL como el siguiente sí funciona:

CREATE TABLE demo(
idcad CHAR(2) CHECK (SUBSTR(idcad, 1, 1) IN ('0', '1') AND SUBSTR(idcad, 2, 2) IN ('1', '2', '3', '4', '5'))
);

Ahora tengo otra duda. Puedo definir en InterBase conjuntos de caracteres como en Delphi, tal que en vez de poner una larga lista como ('1', '2', '3', '4', '5'), pudiera yo escribir algo como:

CREATE TABLE demo(
idcad CHAR(2) CHECK (SUBSTR(idcad, 1, 1) IN set_1 AND SUBSTR(idcad, 2, 2) IN set_2)
);

?

Gracias por su atención.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
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 14:50:46.


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