![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#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. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|