FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como puedo obtener el nombre de tabla(s) de una bd access
Saludos, necesito saber Como puedo obtener el nombre de tabla(s) de una bd access, tengo el nombre el archivo de acces "BASE.MDB" pero este archivo cambia cada semana conserva el mismo nombre pero genera nuevas tablas las cuales no se su nombre, enconces necesito saber el nombre la tabla(s) que contenga el archivo "BASE.MDB".
Espero me puedan ayudar, trabajo con delphi 7 y me conecto a acces por medio de controles zeos y ODBC. Gracias. |
#2
|
||||
|
||||
Cita:
__________________
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. |
#3
|
|||
|
|||
Intente lo que sugieres pero me marca un error dice que no tengo persimo de READ sobre MSysObjects, sigo intentando, lo unico que quiero es tener un combox con las tablas que contenga mi archivo.MDB de mi conexion.
|
#4
|
|||
|
|||
Saludos, sigo te niendo el mismo problema no se como resolverlo espero alguien me pueda ayudar, necesito saber Como puedo obtener el nombre de tabla(s) de una bd access, tengo el nombre el archivo de acces "BASE.MDB" pero este archivo cambia cada semana conserva el mismo nombre pero genera nuevas tablas las cuales no se su nombre, enconces necesito saber el nombre la tabla(s) que contenga el archivo "BASE.MDB".
Espero me puedan ayudar, trabajo con delphi 7 y me conecto a acces por medio de controles zeos y ODBC. Gracias por la ayuda que puedan darme. |
#5
|
||||
|
||||
Otra opción:
¿Tienes posibilidad de conectarte vía ADO? Lo digo por que el componente ADOConnection posee un método llamado GetTableNames que te devuelve una listya con todas las tablas de la Base de Datos (añade además un parámetro que te permite definir si se incluyen las de sistema o no). Si no tienes posibilidad revisa si en los componentes ZEOS (que comentas que utilizas) existe algun método similar. En realidad no hace falta que conectes vía ADO, sólo que coloques el componente ADOConnection y configures la conexión correctamente.
__________________
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. |
#6
|
|||
|
|||
El componente zeos que utilizo no trae el metodo GetTableNames, lo probe con ADOConnection como me aconsejaste y ahi si funciona bien, voy a utilizar ADOConection para esta parte de mi programa.
Muchas gracias. |
#7
|
|||
|
|||
Listando Las Tablas Y Consultas En Una Base De Datos
Yo encontre la respuesta aquí: (lo he copiado abajo)
http://www.latiumsoftware.com/es/pascal/0013.php 5. LISTANDO LAS TABLAS Y CONSULTAS EN UNA BASE DE DATOS Si necesita conocer los nombres de todas las tablas y/o consultas (vistas) en una base de datos abierta con la BDE, puede usar DbiOpenTableList para crear un cursor* con todos los nombres de tablas y consultas, y luego puede leerlo llamando a DbiGetNextRecord como se muestra en el ejemplo de abajo que guarda los nombres en un cuadro de lista (ListBox), indicando si corresponden a una tabla o a una consulta. (*) Un cursor, para quienes no están al día en la terminología de las bases de datos, es una "tabla lógica". Por ejemplo cuando abrimos una tabla o consulta, lo que obtenemos es un cursor, es decir, un conjunto de datos distribuidos en filas o en columnas, independientemente que esos datos provengan de una tabla física, de parte de una tabla, de muchas tablas o de cualquier otra fuente de datos. Para probar el ejemplo, simplemente coloque un ListBox y un Button (botón) en un formulario, y genere el manejador del evento OnClick del botón: uses db, dbtables, bde; // No se olvide de incluir la unidad BDE! procedure TForm1.Button1Click(Sender: TObject); var db1: TDatabase; hCursor: hDBICur; // Cursor con los nombres de tablas y // consultas ListDesc: TBLBaseDesc; // Registro del cursor begin ListBox1.Clear; db1 := nil; try db1 := TDatabase.Create(nil); // Establezca las propiedades necesarias para abrir su base de // datos db1.DatabaseName := 'Access_ODBC_Test'; db1.LoginPrompt := False; db1.Connected := True; // Generar el cursor con los nombres de tablas y consultas Check(DbiOpenTableList(db1.Handle, False, False, '*', hCursor)); // Moverse por los registros del cursor para obtener los nombres while (DbiGetNextRecord(hCursor, dbiNOLOCK, @ListDesc, nil) = dbiErr_None) do if ListDesc.bView then // ¿Es una consulta? ListBox1.Items.Add(ListDesc.szName + ' (Consulta)') else ListBox1.Items.Add(ListDesc.szName + ' (Tabla)'); // Cerrar el cursor dbiCloseCursor(hCursor); db1.Connected := False; except db1.Free; raise; end; db1.Free; end; En lugar de una variable de tipo TDatabase creada para el propósito, puede usar un control TDatabase colocado en un formulario, o la propiedad Database de un control TTable o TQuery. Última edición por Juan Ignacio fecha: 11-10-2006 a las 22:37:18. |
|
|
|