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 17-03-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Crear tabla solo si no existe

hola compañeros, quiero crear una tabla en una base de datos si no existe, algo asi:
Código SQL [-]
IF NOT EXISTS (select 1 from RDB$RELATIONS where  RDB$RELATION_NAME='TEMP1')
THEN
     CREATE TABLE TEMP1(
              NUM_REG INTEGER,
              CANT FLOAT 
END ;



lo que quiero es ejecutar una consulta que contenga la sql en el oncreate del form, pero no me funciona, ¿Me dan una mano?
utilizo firebird 2.1 , ibexpert
__________________
all your base are belong to us
Responder Con Cita
  #2  
Antiguo 17-03-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Poder: 20
movorack Va camino a la famamovorack Va camino a la fama
Hola... aquí tienes un enlace que te puede ayudar con lo que necesitas.

How to create a table only if it does not exist?
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita
  #3  
Antiguo 18-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No conocía ese sitio, me lo guardo, siempre puede ser interesante
Responder Con Cita
  #4  
Antiguo 18-03-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 29
jhonny Va camino a la famajhonny Va camino a la fama
Tambien existe la sentencia RECREATE, pero esta eliminará los datos que tengas en caso de que exista y como su nombre lo indica recreará la tabla. En caso de que no exista, pues la crea.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 18-03-2010
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
Supongo que también podría ejecutarse el CREATE así sin más y esperar el error que lance el motor

// Saludos
Responder Con Cita
  #6  
Antiguo 18-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Creo recordar que desde hace varias versiones se puede hacer algo así como: create or alter table... , si no existe la crea y si existe la modifica
Responder Con Cita
  #7  
Antiguo 18-03-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por jhonny Ver Mensaje
Tambien existe la sentencia RECREATE, pero esta eliminará los datos que tengas en caso de que exista y como su nombre lo indica recreará la tabla. En caso de que no exista, pues la crea.
ya habia probado lo del recreate , solo me recrea la tabla, no encontre como recrear el index de la tabla
__________________
all your base are belong to us
Responder Con Cita
  #8  
Antiguo 18-03-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por roman Ver Mensaje
Supongo que también podría ejecutarse el CREATE así sin más y esperar el error que lance el motor

// Saludos
muy buena idea , no lo habia pensado, podria meter la query en un try excep sin nada en el la ecepcion para no mostrar nada :P, buena idea
__________________
all your base are belong to us
Responder Con Cita
  #9  
Antiguo 18-03-2010
Avatar de look
look look is offline
Miembro
 
Registrado: sep 2007
Ubicación: The Shire
Posts: 656
Poder: 17
look Va camino a la fama
Cita:
Empezado por movorack Ver Mensaje
Hola... aquí tienes un enlace que te puede ayudar con lo que necesitas.

How to create a table only if it does not exist?
ya habia visto esta pagina pero no me funciona, meto esa consulta en el ibexpert pero no me funka, ¿que podra ser?
__________________
all your base are belong to us
Responder Con Cita
  #10  
Antiguo 18-03-2010
TJose TJose is offline
Miembro
 
Registrado: may 2003
Posts: 162
Poder: 21
TJose Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No conocía ese sitio, me lo guardo, siempre puede ser interesante
hace casi 2 años que está en la parte de arriba de este foro:
http://www.clubdelphi.com/foros/showthread.php?t=59194
Responder Con Cita
  #11  
Antiguo 18-03-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por TJose Ver Mensaje
hace casi 2 años que está en la parte de arriba de este foro:
http://www.clubdelphi.com/foros/showthread.php?t=59194
Fíjate... y yo con estos pelos , no lo había visto :s
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
crear tabla si no existe Milperrimo Firebird e Interbase 8 04-01-2008 06:45:40
crear nuevo campo a una tabla si no existe landro Firebird e Interbase 3 24-01-2007 21:56:18
¿Existe alguna banda en el QReport que sólo se mustre en la ultima página? nuri Impresión 2 10-08-2005 13:16:07
¿Una tabla sólo puede estar unida externamente como máximo a otra tabla ? febito Oracle 0 22-06-2004 18:12:16


La franja horaria es GMT +2. Ahora son las 03:50:09.


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