Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-06-2005
Barzaugc Barzaugc is offline
Miembro
 
Registrado: jun 2005
Posts: 50
Poder: 20
Barzaugc Va por buen camino
Lightbulb pregunta SQL interesante

Hola de nuevo mundo delphi, tengo una buena pregunta para ustedes, en codigo SQL, que instruccion se utilizaria para saber si existe una tabla?, por ejemplo, tenemos una base de datos que tiene 3 tablas (tabla1,tabla2 y tabla3) si queremos buscar una tabla4, que instruccion se utilizaria?, si es que la hay, o de que otra manera se podría saber si existe o no.
Responder Con Cita
  #2  
Antiguo 21-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Podes lanzar un select contra el diccionario de datos.

En firebird, por ejemplo, podes averiguarlo así:

Código SQL [-]
Select count(*)
  from rdb$relations
 where rdb$relation_name = 'TABLA4';

Si devuelve 1, la tabla existe, si devuelve 0 la tabla no existe.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 21-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Para SQL Server sería algo así:

Código SQL [-]
   select * from sysobjects where Name = 'tabla4' and xtype='U'

Una optimización que sirve para todos los SGBD's es:
(1) Utilizar un TOP 1.
(2) Preguntar por un sólo campo en lugar de por todos (*)

Código SQL [-]
    select TOP 1 Name from sysobjects where Name = 'tabla4' andxtype='U'
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 21-06-2005
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
En MySql sería:

Código SQL [-]
show tables like 'Tabla4'

Si te regresa un registro es que existe, si no te regresa ningún registro es que no existe.

En Paradox no creo que haya más esperanza que:

Código Delphi [-]
Table.TableName = 'Tabla4';

try
  Table.Open;
except
  ShowMessage('La tabla no existe');
end;

Como verás, cada SGDB funciona distinto por lo que siempre es bueno especificar con cuál estás trabajando.

// Saludos
Responder Con Cita
  #5  
Antiguo 21-06-2005
Barzaugc Barzaugc is offline
Miembro
 
Registrado: jun 2005
Posts: 50
Poder: 20
Barzaugc Va por buen camino
Gracias por interesarse en mi pregunta, pero falta una cosa mas, me hablan de SQL Server y Firebird, pero como seria eso mismo en una base de datos en Access? .
Responder Con Cita
  #6  
Antiguo 21-06-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.339
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Barzaugc
...pero falta una cosa mas, me hablan de SQL Server y Firebird, pero como seria eso mismo en una base de datos en Access? .
Realiza un Select de la tabla:

Código SQL [-]
    Select campo from tabla4

y captura el error similar a como te han explicado para Paradox.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.

Última edición por Neftali [Germán.Estévez] fecha: 23-06-2005 a las 10:20:06.
Responder Con Cita
  #7  
Antiguo 23-06-2005
ramiretor ramiretor is offline
Miembro
 
Registrado: may 2003
Ubicación: México
Posts: 196
Poder: 22
ramiretor Va por buen camino
Hola a todos:
Para aquellos que les gusta el Oracle y para darle un valor agregado al hilo (jajaja), o bien, como breviario cultural va la consulta en Oracle:

Código SQL [-]

  select count(*) from all_tables
    where table_name = 'TABLA4'
      and owner = 'MIUSUARIO';

Saludos
__________________
Ernesto R.
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 21:50:48.


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