Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Cambiar dominio (https://www.clubdelphi.com/foros/showthread.php?t=28906)

Luis Castillo 05-01-2006 23:58:40

Cambiar dominio
 
Hola colegas.

Trabajo en Interbase y tengo un Dominio hecho

CREATE DOMAIN D_CEDULA AS VARCHAR(10)

y tengo muchas tablas que usan este dominio y ta estas tablas tienen datos, y estas tablas tienen relaciones, llaves foraneas etc....

Me di cuenta que hay cedulas de mas de 10 cifras y traté de alterar el dominio:

ALTER DOMAIN D_CEDULA TYPE VARCHAR(15)

pero me sale el siguiente error:

Cita:

Unsuccesfully metadata update
MODIFY RDB$FIELDS falled
Action cancelled by trigger(1) to preserve data integrity
Cannot update index segment used by an Integrity Contraint Stament:
ALTER DOMAIN D_CEDULA TYPE VARCHAR(15)
No se porque elimine temporalmente los trigger pero me sigue dando el mismo error.....puedo cambiar la extension del dominio? o que.....

rastafarey 06-01-2006 15:03:49

Resp
 
Mira la slucion mas sana para evitarte tantos inconveninetes.
Solo extrae el scrip de l abse de datos y cambias el dominio y luego vuleves a ejecutar el scrip y listo

Luis Castillo 06-01-2006 16:10:37

esta bien....
 
Cita:

Mira la slucion mas sana para evitarte tantos inconveninetes.
Solo extrae el scrip de l abse de datos y cambias el dominio y luego vuleves a ejecutar el scrip y listo
Pero no se borra la base de datos?....Ahora yo tengo el script (de cuando cree la base de datos). pero como hago para extraerlo de la base de datos...porque creo que es mejor.

jhonny 06-01-2006 16:42:36

Puedes extraer el Metadatos con el IbExpert o con el IbManager por ejemplo, aunque la verdad esque yo creo que el problema esta en los datos que ya tienes en dichas tablas, aunque me confundo un poco porque lo que estas haciendo es pasar de varchar(10) a 15.

rastafarey 06-01-2006 16:48:59

Resp
 
Mira con ibexpert extraes el script en el menu herramientas/extraear metadata.
Luego cambias el nombre del dominio.
por seguridad no borres la base d edatos original solo cambiale el nombre luego verifica en el scrip para darle la ruta donde debe crear la base de datos y ejecutas el script.

Nota: SI te da un error creandola puede ser por que en elscript te estas refiriendo a un alias y no a la db eso lo cambias y asegurate de poner el servidor que eso tambien pde darte problemas.

Creo que si siguen esto spasos no te debe dar ningun problema.

A una cosa usa una extencion diferente a .gdb pra que te evites problemas futuros si tu servidor esta trabajando bajo windows.

maeyanes 06-01-2006 17:09:04

Yo usando IBExpert, he podido pasar dominios de tipo varchar de menos a más (varchar(10) a varchar(15), por ejemplo), aun con datos en las tablas, sin problemas. Lo que si no deja es que sea de más a menos.


Saludos...

Luis Castillo 07-01-2006 15:34:21

Intenté
 
Bueno, hice lo que me dijeron con IBExpert: extraje el script, cambie el nombre de la base de datos y alteré el dominio a varchar(15). Me crea todo pero vacio.....

Es normal?....entonces tengo que pasar manualmente los datos a la nueva base de datos?

lucasarts_18 18-01-2006 05:41:18

Cita:

Empezado por maeyanes
Lo que si no deja es que sea de más a menos.

Hola:

Y no hay forma de hacerlo, me he topado con este problema ya que necesito pasar de un varchar de 40 a 12 y no me ha dejado :confused:

Hasta Luego -

jhonny 18-01-2006 13:56:11

Cita:

Empezado por Luis Castillo
Es normal?

Bueno, es que quiza le idicaste al IbExpert que la BD no fuera transportable y por eso no te paso los datos.

Cita:

Empezado por lucasarts_18
Y no hay forma de hacerlo

Si los datos que hay en tu tabla y en ese campo no pasan de 12 caracteres no hay ningun problema, de lo contrario quiza te pase lo de Luis o quiza te corte todo a 12, tendrias que ensayar.

lucasarts_18 18-01-2006 15:26:48

Cita:

Empezado por jhonny
Si los datos que hay en tu tabla y en ese campo no pasan de 12 caracteres no hay ningun problema, de lo contrario quiza te pase lo de Luis o quiza te corte todo a 12, tendrias que ensayar.

Es que no hay datos, he vaciados los registros y traté de hacerlo y no me dejó...:(

Hasta Luego -

jhonny 18-01-2006 15:46:06

Si no tienes datos entonces prueba eliminando el campo y volviendolo a crear

lucasarts_18 19-01-2006 01:31:01

Hola:

Este es el error que me da...

Cita:

This operation is not defined for system tables.
unsuccessful metadata update.
New size specified for column NOMBRES must be at least 40 characters.
He hecho lo que propones, pero no es una forma que me agrade :mad: , a que se debe esto, alguien sabe ?.
Creo que en SQL Server no existe tal restricción..

Gracias...

Hasta Luego -

maeyanes 19-01-2006 15:26:43

Es como se te dijo, un dominio o campo char/varchar en IB (y me imagino que en FB también), solo se puede redimencionar hacia arriba, no hacia abajo. Esto es así para proteger la integridad de los datos.

Lo único que te queda por hacer es borrar el campo, modificar el dominio y recrear de nuevo ese campo.



Saludos...


La franja horaria es GMT +2. Ahora son las 16:58: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