Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Como saber si una Tabla existe con Ado (https://www.clubdelphi.com/foros/showthread.php?t=18884)

manuelpr 25-02-2005 15:52:19

Como saber si una Tabla existe con Ado
 
Hola,

Estoy trabajando con MS SQL server 2000 y Delphi 6, conectado con ADO y necesito crear algunas tablas, pero antes debo verificar que estas no existan. Como saber si una tabla existe en una base de datos conectado con ADO.

Saludos

Neftali [Germán.Estévez] 25-02-2005 16:51:54

Lanza la consulta siguiente:

Código SQL [-]
  Select id from SysObjects where xType='U' and Name='NombreTabla'

Si la tabla con nombre 'NombreTabla' existe te devolverá un registro, si no existe te devolverá 0 registros.

Código SQL [-]
   Select name from SysObjects where xType='U'

te devuelve un registro por cada tabla que existe en la Base de Datos.

manuelpr 28-02-2005 13:55:50

Lo probe pero me arroja el siguiente Error : Invalid Object name 'Sysobjects'

Saludos

Neftali [Germán.Estévez] 28-02-2005 15:30:53

Yo he probado a poner un ADOQuery apuntando a una Base de Datos de SQLServer 2000 con Delphi 6 y con la siguiente SQL:

Código SQL [-]
   Select name from SysObjects where xType='U'

y funciona perfectamente.
Lo he conectado a un DBGrid y muestra todos los registros.

manuelpr 28-02-2005 18:10:09

Estube probando : Select id from SysObjects where xType='U' and Name='NombreTabla'

donde especifique el nombre de la tabla y me dio el anterior problema

'NombreTabla' = 'COMUNAS'

Quiero saber si la tabla COMUNAS existe en la base de datosa

Neftali [Germán.Estévez] 01-03-2005 11:08:36

Ésta consulta debería funcionar; Lánzala y luego pregunta si ADOQuery.EOF es True.
Código SQL [-]
   Select id from SysObjects where xType='U' and Name='COMUNAS'

manuelpr 02-03-2005 14:28:03

Es esactamente lo que realizo y me arroja el error entes explicado

Gracias

Neftali [Germán.Estévez] 02-03-2005 16:23:01

Tal vez no tienes permiso para acceder a esas tablas.
Desde la consola de SQl, cuando despliegas las tablas de una Base de Datos debes ver las tablas de sistema (empiezan todas por sys...): syscolumns, syscomments, sysdepends, sysobjects,...
Si no las ves es pq no tienes permisos; Revisa las opciones de la Base de Datos y los permisos del usuario con que te conectas.
Dentro de las opciones de la BD hay un apartado que habla de permisos (Acceso restringido, sólo lectura,...) revísalo.


La franja horaria es GMT +2. Ahora son las 14:40:18.

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