Einzelnen Beitrag anzeigen

xpmstos

Registriert seit: 24. Mär 2003
19 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: MySQL Tabellen-Namen auslesen (Zeos)

  Alt 24. Jul 2003, 13:38
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?
Alles denkbare wird einmal gedacht.
  Mit Zitat antworten Zitat