Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Saber si existe una tabla en SQL (en ejecucion) (https://www.clubdelphi.com/foros/showthread.php?t=93517)

oscarac 24-10-2018 03:05:25

Saber si existe una tabla en SQL (en ejecucion)
 
como dice el titulo
como puedo saber si existe una tabla en ejecución (Y si no existe crearla en base a una estructura de un ClientDataSet)


la idea es la siguiente:

estoy adicionando registros a una tabla en memoria (ClientDataSet) y quisiera grabarlos en una tabla (que no existe y que puede tener cualquier nombre en SQL)

luego cuando regrese a la opcion (donde estaba adicionando los registros) detecte di existe la tabla creada y jalar la informacion en el ClientDataSet


los comandos los se aplicar en SQL, pero como lo aplico en Delphi ? (quiza en un Store Procedure) ???

alguien me echa una mano

Neftali [Germán.Estévez] 24-10-2018 11:34:31

1) No comentas la Base de Datos o SGBD que utilizas. La mayoría tienen accesibles tablas para saber si un objeto existe. Lo que llamamos METADATOS.
Con un Query, puedes ejecutar una SELECT para saber si una tabla existe.
POr ejemplo, si buscas aquí en el club encontrarás hilos al respecto, segun la Base de Datos sobre la que trabajes:
https://www.clubdelphi.com/foros/showthread.php?t=65193
https://www.clubdelphi.com/foros/showthread.php?t=52108
https://www.clubdelphi.com/foros/showthread.php?t=38318



2) Si no existe la tabla, para crearla, puedes hacerlo igualmente con un Query. Antes de lanzarlo deberás montar la SQL necesaria en función de los campos del ClientDataset.
Deberás utilizar iun CREATE TABLE y los campos necesarios.
https://www.w3schools.com/sql/sql_create_table.asp


Si buscas, también puedes encontrar hilos con el código necesairio para hacerlo, dependiendo de la Base de Datos y de los componentes de conexión que estés utilizando.
https://www.clubdelphi.com/foros/showthread.php?t=41960
https://www.clubdelphi.com/foros/sho...85389&langid=1

roman 24-10-2018 14:20:05

También puede lanzar la sentencia CREATE TABLE y esperar la excepción :)

// Saludos


La franja horaria es GMT +2. Ahora son las 07:45:31.

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