Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Cambiar tipo de datos de un campo

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Cambiar tipo de datos de un campo Responder citando

Tengo una tabla en paradox7 y en ella tengo dos campos con tipo de datos SHORT. Me gustaría que al pulsar un botón en mi programa se comprobara el tipo de datos de esos dos campos y cambiarlo a NUMBER. He intentado con sentencias SQL con Alter Table pero no me ha resultado.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Lo puedes hacer con varias sentencias SQL si es que no te permite hacerlo directamente, la posible idea es como sigue:

La idea:
- Te creas un nuevo campo del tipo que quieres.
- Copias todos los datos del viejo campo al nuevo campo mediante una instrucción UPDATE haciendo el casting oportuno si es que te hace falta.
- Luego borras el antiguo campo de la tabla.
- Y posteriormente renombras el nuevo campo al antiguo.

La idea en SQL.

ALTER TABLE tabla ADD campo_nuevo nuevo_tipo;
UPDATE tabla SET campo_nuevo=CAST(campo_viejo AS nuevo_tipo);
ó
UPDATE tabla SET campo_nuevo=campo_viejo; (si se permite hacerlo).
ALTER TABLE tabla DROP campo_viejo;
ALTER TABLE tabla RENAME campo_nuevo TO campo_viejo;

En fín no sé si lo soportará tu gestor yo no uso Paradox.

Suerte!

Por supuesto esto solo una sugerencia, y desde luego solo si tu SGBD no te permite cambiar el tipo directamente.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Muchísimas gracias XyVy Very Happy , Tu sugerencia ha sido crucial para poder resolverlo. Finalmente mi SGBD no soporta RENAME así que he tenido que hacerlo así:
Código:

ALTER TABLE servicios add nuevo_campo float
UPDATE servicios SET nuevo_campo=CAST(festivas as float)
ALTER TABLE servicios DROP festivas
ALTER TABLE servicios ADD Festivas float
UPDATE servicios SET Festivas=nuevo_campo
ALTER TABLE servicios DROP nuevo_campo

En lugar de usar RENAME (que no lo soporta mi SGBD) he tenido que alargar un poco más añadiendo campos y eliminándolos posteriormente pero lo importante es que ha funcionado y sin tu ayuda no lo habría hecho, así que ... Muuuuuuuuuuchas gracias. Salud y buen rollito para todos.
_________________
¡ADELANTE CON ESTE SUPER FORO!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Ok has cogido mi solución y la has elevado al cuadrado!! Genial, la verdad es que no pensé en hacerlo sin renombrar y era igual de tonto!

Venga gracias, ciao.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.