|
Hola, agradezco mucho las respuestas, en ambos casos las considero muy interesantes y en realidad a poner en práctica.
Por el momento he resuelto el tema con el siguiente codigo:
Mostrar las tablas (Llenando un listbox):
procedure TForm1.NxButtonMostrarClick(Sender: TObject);
var
Query:TZQuery;
sFiltro: String;
begin
if NxRbTodas.Checked then sFiltro := '_xx';
if nxRbSoloProd.Checked then sFiltro := '_xx_2';
ListBox1.Items.Clear;
ListBox2.Items.Clear;
Query:=TZQuery.Create(Self);
Query.Connection := ZConnection1;
Query.SQL.Add('show tables');
try
Query.Open;
while(not Query.Eof) do
begin
if pos(sFiltro, Query.Fields[0].AsString) <> 0 then
ListBox1.Items.Add(Query.Fields[0].AsString);
Query.Next;
end;
finally
Query.Close;
Query.Free;
end;
end;
Una vez llenado el listbox1 donde me muestra las tablas, al acer clic en cualquiera de ellas muestra los campos en el listbox2:
procedure TForm1.ListBox1Click(Sender: TObject);
var
Query:TZQuery;
begin
ZTable1.Active := False;
ZTable1.TableName := ListBox1.Items.Strings[ListBox1.ItemIndex];
ZTable1.Active := True;
ListBox2.Items.Clear;
Query:=TZQuery.Create(Self);
Query.Connection := ZConnection1;
Query.SQL.Add('show columns from '+NxBtnBD.Text + '.' + ZTable1.TableName );
try
Query.Open;
while(not Query.Eof) do
begin
ListBox2.Items.Add(Query.Fields[0].AsString);
Query.Next;
end;
finally
Query.Close;
Query.Free;
end;
end;
Evidente, se puede hacer a lo mejor mas elegante pero con esto he salido del paso. Gracias de nuevo a los que aportaron las ideas y podeis estar seguros que me van a servir y mucho por las caracteristicas de las mismas.
Un saludo.
|