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 06-09-2011
Gallosuarez Gallosuarez is offline
Miembro
 
Registrado: feb 2007
Posts: 92
Poder: 18
Gallosuarez Va por buen camino
Question Dudas respecto a lo quieres hacer ...

Carlos:

Pues no entiendo bien a bien que es lo que quieres hacer en el check (no entiendo tu ejemplo), pero yo he utilizado el iif muy a menudo. Te pongo un par de ejemplos:

En un campo calculado:
Código SQL [-]
FULLNAME COMPUTED BY (TRIM(LASTNAME || ' ' || IIF(MOTHERSMAIDEN_NAME <> '', MOTHERS_MAIDEN_NAME || ' ', '') || FIRSTNAME));

Dentro de un procedimiento almacenado:
Código SQL [-]
  /* Bucle para procesar apellido(s) paterno */
  WHILE (1 = 1) DO
  BEGIN
    PosEspacio = IIF(POSITION(' ', APaterno) = 0, 1, POSITION(' ', APaterno));
    APaterno1 = SUBSTRING(APaterno FROM 1 FOR PosEspacio - 1);
    IF (APaterno1 NOT IN ('DE','LA','LAS','MC','VON','DEL','LOS','Y','MAC','VAN')
      OR (PosEspacio - 1) = 0) THEN LEAVE;
    APaterno = SUBSTRING(APaterno FROM PosEspacio + 1);
  END

Espero que te ayude mi código ...

Saludos,
Gerardo Suárez Trejo

Última edición por Gallosuarez fecha: 06-09-2011 a las 03:47:45. Razón: corrección el el código ...
Responder Con Cita
  #2  
Antiguo 06-09-2011
Avatar de CarlosG
CarlosG CarlosG is offline
Miembro
NULL
 
Registrado: ago 2011
Posts: 24
Poder: 0
CarlosG Va por buen camino
Gracias por las repuestas .

Cita:
Pues no entiendo bien a bien que es lo que quieres hacer en el check (no entiendo tu ejemplo)
Disculpa es que lo saque rapido de mi codigo SQL DDL, y como que no se entiende muy bien . A Traducir: check(iif(UseKardex=1, TipoKardex is not null, TipoKardex is null))

condicion: UseKardex es = 1
Si es Verdadero: obligar el ingreso para el campo TipoKardex
Si es Falso: impedir que se ingrese informacion en el campo TipoKardex.

Soy nuevo en Firebird y habia creado todo mi script SQL de BD, usando checks comprobaciones a nivel de tabla con funciones IIF (pensaba que si se podia ) pero al probarlo no funciono, como decia CARAL no funcioma en checks, al parecer solo hay 2 opciones.

1.- Uso los Procedimientos almacenado, aunque mejor los triggers como sugiere GalloSuarez donde si puedo usar los IIFs.
2.- o sustituir los IIF por condiciones AND y OR, traduciendo el ejemplo seria: CHECK((UseKardex=1 AND TipoKardex is not null) or (UseKardex=0 AND TipoKardex is null)).

Gracias por las respuestas, tengo que corregir mi script SQL, cometiendo fallas se aprende .
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
char_length en check no funciona erickperez6 Firebird e Interbase 1 23-10-2010 04:40:15
instruccion CHECK CHiCoLiTa MS SQL Server 3 01-03-2005 18:12:58
Actualizar un check cmgenny Firebird e Interbase 5 28-03-2004 18:09:18
Check!! subzero Firebird e Interbase 3 09-02-2004 23:43:04
Error gds consistency check... no se que judoboy Firebird e Interbase 12 31-07-2003 19:13:33


La franja horaria es GMT +2. Ahora son las 18:08:05.


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