Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MySQL Tabellen-Namen auslesen (Zeos) (https://www.delphipraxis.net/6630-mysql-tabellen-namen-auslesen-zeos.html)

xpmstos 17. Jul 2003 09:23


MySQL Tabellen-Namen auslesen (Zeos)
 
Guten Tag,

ich habe nun vor mit Delphi ein MySQL-Projekt zu bauen.
Nun möchte ich die Namen meiner Tabellen auslesen und Sie in einem Grid auflisten damit man die Tabellen aus- bzw. abwählen kann.
Unter PHP 3.x,4.x gibt es die Funktion mysql_tablename welche den Tabellennamen als String zurückgibt, gibt es solch ein Funktion?
Ich habe die Zeos DBO's in der Version 5.5 für Delphi 7 installiert.

Mit freundlichem Gruß

xpmstos

Phoenix 17. Jul 2003 10:12

Re: MySQL Tabellen-Namen auslesen (Zeos)
 
Probier's mal mit folgender Query:
Code:
SHOW TABLES;
Und das nächste mal vielleicht auch mit der Online-Dokumentation ;-)

xpmstos 17. Jul 2003 10:23

Re: MySQL Tabellen-Namen auslesen (Zeos)
 
danke, das ist doch genau das was ich brauche.
und den link hab ich mir schon gespeichert, soweit konnte ich nicht denken das ich auch mit standard-mysql-querys meine tabellen-namen bekomme... :freak:

danke, nun kann ich wieder :coder:

gruß xpmstos

xpmstos 24. Jul 2003 12:38

Re: MySQL Tabellen-Namen auslesen (Zeos)
 
nun habe ich noch ein weiteres problem, ich hole mir nun mit "SHOW TABLES" die Tabellen und will sie mittels "Query.Fields[0].AsString" in ein StringGrid schreiben. Wenn ich den ersten namen aus dem Array Fields hole (0), funzt das, aber wenn ich den nächsten namen aus dem array haben will (1), bekomme ich eine EListError-Exception (Listenindex überschreitet das Maximum(1)).

Hier mein Code:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ZTransact, ZMySqlTr, ZQuery, ZMySqlQuery, ZConnect,
  ZMySqlCon, StdCtrls, ComCtrls, Grids, Menus, ExtCtrls;

type
  TDumperMain = class(TForm)
    Database: TZZMySqlDatabase;
    Query: TZZMySqlQuery;
    Transact: TZZMySqlTransact;
    DataSource: TDataSource;
    EditServer: TEdit;
    EditBenutzer: TEdit;
    EditPasswort: TEdit;
    EditDatenbank: TEdit;
    ButtonConnect: TButton;
    StatusBar: TStatusBar;
    StringGrid: TStringGrid;
    procedure ButtonConnectClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DumperMain: TDumperMain;

implementation

{$R *.dfm}

procedure TDumperMain.ButtonConnectClick(Sender: TObject);
var
  col     : Integer;
begin
  col := 0;
  Database.Host := EditServer.Text;
  Database.Login := EditBenutzer.Text;
  Database.Password := EditPasswort.Text;
  Database.Database := EditDatenbank.Text;
  try
    Database.Connected := True;
  except
    StatusBar.SimpleText := 'Verbindung konnte nicht hergestellt werden';
  end;
  try
    StatusBar.SimpleText := 'Verbindung aufgebaut';
    Query.Sql.Text := 'SHOW TABLES';
    Query.Open;
    while not Query.Eof do
    begin
      StringGrid.Cells[col,0] := Query.Fields[col].AsString;
      col:=col+1;
      Query.Next;
    end;
  finally
    Database.Connected := False;
    StatusBar.SimpleText := 'Verbindung geschlossen';
  end;
end;
end.
Ich möchte gerne alle Tabellen-Namen eine Datenbank in einem StringGrid auflisten, aber ich bekomm aus dem Array 'Fields' nur den ersten (0) Eintrag ausgelesen, kann es sein das der Query nur die erste Tabelle holt?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz