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)
-   -   Comprobar si existe la tabla... (https://www.clubdelphi.com/foros/showthread.php?t=31740)

Acanol 16-05-2006 17:55:54

Comprobar si existe la tabla...
 
Muy buenas, necesitaria saber la forma de comprobar si existe una tabla antes de borrarla, en un principio estoy utilizando access pero voy a pasar todas las tablas a paradox, me vendria bien ambos ejemplos (si son distintos). Una ultima pregunta tengo el programa desarrollado con Adotables y adoquerys para conectar con tablas de acces y querria saber que proveedor a la hora de realizar la conexion he de seleccionar para utilizar estos mismos componentes con paradox... muchas gracias por su tiempo.

Neftali [Germán.Estévez] 16-05-2006 18:03:43

Creo recordar que desde el componente ADOConnection puedes consultar las tablas existentes. Revisa los métodos.

Acanol 16-05-2006 18:28:24

Muchas gracias Netfali, creo que lo he solucionado con esto:

Código Delphi [-]
ADOConnection1.GetTableNames(ListBox1.Items, False);

Tengo que mirarlo mas a fondo. Y sobre lo de conectar con tablas paradox con los adotables y AdoQuerys, me podrias orientar¿ es que no encuentro el proveedor adecuado, para access se que es provider=Microsoft.Jet.OLEDB.4.0;. Muchas gracias por atender mi peticion.

mariofur 17-05-2006 09:47:43

Creo que en paradox funciona así:
if MiTabla.Exist do, then, etc....

Espero que te sirva.

LUCHO 17-05-2006 20:54:49

Otra opcion seria asi :

If FileExist('MiTabla.DB') Then
Hacer algo....

Acanol 29-05-2006 21:35:55

Muchas gracias por su dedicacion me sirvio en parte para realizar lo que necesitaba pero aun mas para otra aplicacion ;).

Acanol 06-06-2006 10:44:47

¿se podria hacer lo mismo en firebird?
 
Y en firebird?, existe alguna posibilidad como las anteriores?
Gracias por su paciencia.

Lepe 06-06-2006 11:20:58

La solución de Neftali tambien sirve para Firebird... En realidad el Objeto TDatabase guarda todas las tablas de la base de datos.

Si deseas tambien que salga las vistas, prueba esto:
Código Delphi [-]
procedure CheckTablename(const TableName:string);
var Tablas:TStringList;
    m :TMDOQuery;
begin
  Tablas := TStringList.Create;
  m := TMDOQuery.Create(nil);
  try
    m.Database:= dtm.DB;
    m.Transaction:= dtm.Trans;
{----------------------------NOMBRES DE TABLAS Y VISTAS ----------------------}
    m.SQL.Text:=   'SELECT RDB$RELATION_NAME FROM RDB$RELATIONS' + {do not localize}
                          ' WHERE RDB$SYSTEM_FLAG = 0'; {do not localize}

    m.Open;
    if not m.Locate('RDB$RELATION_NAME',TableName,[locaseinsensitive]) then
      raise Exception.Create(Format('La Tabla "%s" no existe en la BBDD.',[TableName]))

Saludos

Acanol 06-06-2006 11:30:00

Buenas Lepe, creo que si que me puede servir, aunque no tenga que pulsar en una lista, jeje(le pasare el nombre directamente), bueno a lo que iva, perdona mi ignorancia pero soy nuevo en este tema, que se supone que es "TMDOQuery" (adoquery??), en solucionar eso lo probare :D. Muchas gracias.

Lepe 06-06-2006 16:07:44

Para atacar una base de datos Firebird yo uso los componentes MDOLIB que son OpenSource, TMDOQuery equivale a un TQuery del BDE, y por tanto a un ADOQuery.

Lo creo en tiempo de ejecución porque es una rutina que tengo en un fichero .pas y realmente no tiene Form asociado. Si vas a hacerlo en un Form, puedes poner el componente TADOQuery en el form y configurar sus propiedades.

Acanol 06-06-2006 17:41:58

Ok, probare a ver que tal, yo utilizo FibPlus, en probarlo te comento


La franja horaria es GMT +2. Ahora son las 00:15:41.

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