• Viernes 15 de Noviembre de 2024, 12:58

Autor Tema:  Saber Si Una Tabla Ya Existe  (Leído 1390 veces)

Fernando_P

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Saber Si Una Tabla Ya Existe
« en: Viernes 18 de Junio de 2004, 14:49 »
0
Hola!,
quiero saber si es posible consultar a una base de datos para saber si una tabla que quiero crear ya existe, y de ser asi, renombrar la nueva con el nombre de la anterior mas un nro, pej. test, test01, test02, etc
Estoy utilizando ADO para trabajar con la bd de access.

Gracias y ojala puedan ayudarme!

vradok

  • Miembro activo
  • **
  • Mensajes: 97
    • Ver Perfil
Re: Saber Si Una Tabla Ya Existe
« Respuesta #1 en: Viernes 18 de Junio de 2004, 16:36 »
0
Lo que puedes hacer es abrir un esquema de la base de datos y comprobar si existe la tabla .Hay un metodo en ADO que se llama "OpenSchema" , busca en la documentación de visual que no es muy dificil de usar.

En cuanto a lo de renombrar la tabla no creo que te sea muy dificil si usas un "rename nombretabla as nombrenuevo" en una consulta SQL.

Un saludo Fernando_P
********************************************************
                  ladrones

Juanolo

  • Miembro MUY activo
  • ***
  • Mensajes: 202
    • Ver Perfil
Re: Saber Si Una Tabla Ya Existe
« Respuesta #2 en: Viernes 18 de Junio de 2004, 16:55 »
0
Hola Fernando:
No sé bien si con este código te distraigo o te puedo ayudar en algo, pero estoy recién entrando a Ado y no he tenido tiempo ni necesidad de actualizarme en esto de crear tablas.
El código siguiente funcionaba en Dao. Puede que sirva algo...

Código: Text
  1. Public Sub CreaHistoriaCambios()
  2.     Dim Td As TableDef
  3.     Dim IdxDocum As Index
  4.     Dim Fld As Field
  5.     Dim i As Integer
  6.     'Reviso la colección de tablas en busca de la tabla "Historia Cambios"
  7.     'BaseGen es mi objeto Database
  8.     For i = 0 To BaseGen.TableDefs.Count - 1
  9.         'Si existe salgo del procedimiento.
  10.         If BaseGen.TableDefs(i).Name = "Historia Cambios" Then Exit Sub
  11.     Next i
  12.     'Si recorrí la colección sin encontrar una coincidencia,
  13.     'creo la tabla.
  14.     Set Td = BaseGen.CreateTableDef("Historia Cambios")
  15.     'Creo el único campo de mi tabla
  16.     '(en este caso, es de texto)
  17.     Set Fld = Td.CreateField("Cambio", dbText)
  18.     Td.Fields.Append Fld
  19.     'Agrego la tabla creada a la colección
  20.     BaseGen.TableDefs.Append Td
  21.     With Td
  22.         ' Primero crea objeto Index, crea y agrega los
  23.         ' objetos Field al objeto Index y después agrega
  24.         ' el objeto Index a la colección Indexes de
  25.         ' TableDef.
  26.         Set IdxDocum = .CreateIndex("IndCambio")
  27.         With IdxDocum
  28.             .Fields.Append .CreateField("Cambio")
  29.         End With
  30.         .Indexes.Append IdxDocum
  31.         .Indexes.Refresh
  32.     End With
  33.    
  34. End Sub
  35.  

Lo que hacía era buscara la tabla "Historia Cambios". Si no existía, creaba esta tabla que era muy sencilla, con un sólo campo, y un índice en ese mismo campo.

Ojalá te sirva algo.

Salu2.
La luz que sólo se ilumina a sí misma, es oscuridad.