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 26-03-2004
Avatar de cmgenny
cmgenny cmgenny is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo
Posts: 71
Poder: 22
cmgenny Va por buen camino
Actualizar un check

Hola

Como estan todos, tenia varios meses que no venia por aqui debido a unos problemas tecnicos $$$. Ok el caso es que ya estamos aqui para alimentar el foro con preguntas.

Quisiera actualizar un Check y no lo logro, estuve leyendo el hilo de subzero y no entiendo bien como fue que lo logro, no entiendo por que usa constraint y cuando intento hacerlo como el lo hizo no me sale. Me gustaria que me expliquen un poco mas detallada la forma que se hace.

Muchas Gracias por sus respuestas.
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan.
Sr. Genny Cris Morillo Santos
Estudiante ING. Sistemas
Santo Domingo D.N.
Responder Con Cita
  #2  
Antiguo 26-03-2004
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
Que bueno que estás de vuelta pero, ¿realmente piensas que podemos ayudarte con la información que nos das?

¿Qué significa actualizar un Check? ¿Cuál es el hilo de subzero? Habiendo más de 8000 hilos es francamente imposible que recordemos todos. ¿Cómo vamos a saber por qué usa constraint si ni siquiera sabemos a que se refiere con eso ni en que contexto se usó?

Detalla más y seguro que algún experto en Interbase podrá resolver tu duda.

// Saludos
Responder Con Cita
  #3  
Antiguo 26-03-2004
injavies injavies is offline
Miembro
 
Registrado: jun 2003
Posts: 15
Poder: 0
injavies Va por buen camino
Hola.

si no entendi mal tu pregunta creo que esto te puede ayudar
estoy ejemplos lo saque "The Dark Side of CppB" en la parte que hable de FireBird

create table Detalles (
RefPedido int not null,
NumLinea int not null,
RefArticulo int not null,
Cantidad int default 1 not null,
Descuento int default 0 not null,
check (Descuento between 0 and 50 or "Marteens Corporation"=
(select Nombre from Clientes
where Codigo = (select RefCliente from Pedidos
where Numero = Detalles.RefPedido))),
/* … */
);

Esta cláusula dice, en pocas palabras, que solamente el autor de este libro puede
beneficiarse de descuentos superiores al 50%.

otro ejemplo

create table Pedidos(
/* … */
check (Cliente in (select Codigo from Clientes))
);


espero que te ayude
Responder Con Cita
  #4  
Antiguo 27-03-2004
Avatar de cmgenny
cmgenny cmgenny is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo
Posts: 71
Poder: 22
cmgenny Va por buen camino
Dejame explicarme mejor

Okey

Dejame explicarme mejor, yo tengo una tabla que se llama EQUIPOS a su vez esta tiene una columna que se llama ESTATUS definida asi

CREATE TABLE EQUIPOS
ESTATUS SMALLINT DEFAULT 0
CHECK(ESTATUS = 0 OR ESTATUS =1)

Y si, tienes razon no seria actualizar, si no, modificar el check para que me acepte mas valores, yo lo he intentado asi.

ALTER TABLE EQUIPOS
DROP ESTATUS

Y no me deja hacerlo dice ther are 2 dependencies, lo que intento es borrarlo para despues crearlo como yo quiero con mas valores.

y al hilo que me referia es a este: http://www.clubdelphi.com/foros/show...ble+drop+check

Yo utilizo D6 con IB7
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan.
Sr. Genny Cris Morillo Santos
Estudiante ING. Sistemas
Santo Domingo D.N.
Responder Con Cita
  #5  
Antiguo 27-03-2004
orodriguezc orodriguezc is offline
Miembro
 
Registrado: nov 2003
Ubicación: Cartagena - Colombia
Posts: 33
Poder: 0
orodriguezc Va por buen camino
Hola cmgenny,

Cuando creas una tabla con restricción de comprobación (clausula check) puedes asociarle un nombre a la restricción. Si no lo haces, Interbase/firebird de manera automática le asigna algún nombre.

El caso es que conociendo el nombre de la restricción puedes cambiarla de manera sencilla. Coloco un ejemplo:

Código:
 CREATE TABLE EQUIPOS(
  ESTATUS SMALLINT DEFAULT 0
    constraint  ckc_estatus  check (ESTATUS = 0 OR ESTATUS =1),
  OTROCAMPO CHAR(1) )
Ahora, sabiendo que el nombre de la restriccion es ckc_estatus , podemos borrarlo y crearlo nuevamente:

Código:
ALTER TABLE EQUIPOS DROP CONSTRAINT CKC_ESTATUS;

alter table EQUIPOS
  add constraint CKC_ESTATUS
   check (ESTATUS = 0 OR ESTATUS =1 or ESTATUS=2)
Y de esta forma logras modificar el Check.

Si no le colocas nombre a la restricción aún puedes averiguarlo consultando las tablas del sistema (cosa que yo nunca hago ), o puedes realizar todo lo que requieres utilizando el IBExpert .

Espero te sirva. Saludos...
Responder Con Cita
  #6  
Antiguo 28-03-2004
Avatar de cmgenny
cmgenny cmgenny is offline
Miembro
 
Registrado: may 2003
Ubicación: Santo Domingo
Posts: 71
Poder: 22
cmgenny Va por buen camino
Muhas Gracias

Tenias razon funciono a la perfección, lo que estaba haciendo mal era que no estaba dando el nombre a la constraint que tenia que modificar.

Muchisimas gracias.
__________________
Y recueda que no hay preguntas tontas, si no, tontos que no preguntan.
Sr. Genny Cris Morillo Santos
Estudiante ING. Sistemas
Santo Domingo D.N.
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 19:53:58.


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