Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   mostrar las tablas de una bd (https://www.clubdelphi.com/foros/showthread.php?t=1108)

PEITO 04-06-2003 09:22:39

mostrar las tablas de una bd
 
Tengo una base de datos con unas 30 tablas.
¿Como puedo hacer para que en un combobox insertado en un formulario me aparezcan todas las tablas de dicha base de datos?

¿Si ademas tendo insertado un datasource y un dbgrid, como puedo hacer que cambien los datos segun la tabla que haya elegido en el combobox?

Gracias.

Kafu 04-06-2003 09:29:39

Depende qué tipo de base de datos sea.
Interbase, Oracle, SQL-server y otros motores del estilo tienen tablas de sistema con los objetos de la BD.
Si hablamos de un paradox, access o por el estilo, creo que tendrás que recorrer los directorios y crearte una lista.
En cuanto a modificar el datasource claro que se puede, en el onchange del combo asignas la propiedad dataset a ese mismo datasource (por ejemplo) y le pones la tabla que hayas seleccionado. Un saludo,



F.T.G.

Kafu 04-06-2003 09:31:16

Cita:

Si hablamos de un paradox, access o por el estilo, creo que tendrás que recorrer los directorios y crearte una lista.
Olvida esto. Paradox tiene tablas sueltas, pero acces tiene un único mdb. Disculpa la imprecisión.

andres1569 04-06-2003 11:11:45

Hola:

El siguiente método de un objeto TSession devuelve en una lista todas las tablas de una base de datos, sin importar que tipo de SGBD sea:

GetTableNames(const DatabaseName, Pattern: string; Extensions, SystemTables: Boolean; List: TStrings);

En la ayuda de Delphi viene explicado su funcionamiento y un ejemplo.

Si rellenas un ComboBox con esas tablas, para que el Grid te muestre los datos de cada tabla, puedes enlazar el DBGrid a un DataSource y éste a un TTable cuyo DatabaseName apunte a esa base de datos. En el OnChange del ComboBox puedes escribir algo así:

Código:

procedure FMainComboBox1Change (Sender: TObject);
begin
  with Table1 do
  begin
    DisableControls;
    try
      Close;
      with TComboBox(Sender) do TableName := Items[ItemIndex];
      Open; 
    finally
      EnableControls;
    end;
  end;
end;

Un saludo


La franja horaria es GMT +2. Ahora son las 09:27:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi