AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellen Abfragen

Ein Thema von TheMason · begonnen am 18. Apr 2009 · letzter Beitrag vom 18. Apr 2009
 
TheMason

Registriert seit: 18. Apr 2009
3 Beiträge
 
#1

Tabellen Abfragen

  Alt 18. Apr 2009, 15:18
Datenbank: MySQL • Version: 5.1 • Zugriff über: ODBC MySQL Driver
Hallo,

ich habe ein Problemchen. Ich möchte per Turbo Delphi und der Komponente TQuery auf meine MySQL Datenbank zugreifen und die vorhandenen Tabellen ermitteln.

Unter der MySQL Shell geht das mit "SHOW TABLES" auch wunderbar.
Nutze ich hingegen TQuery unter TurboDelphi, und will mir die einzelnen Felder holen, funktioniert das nicht.
Nicht funktionieren heißt das er auf keines der Felder in der Abfrage zugreifen kann.
Ich habe mal weitergeforscht und siehe da : Er hat laut TQuery.FieldDefs ein Feld welches auch genauso heißt wie das Feld in der MySQL-Shell. In dem Falle : "Tables_in_test" (Die Datenbank hab ich einfallsloshalber mal test genannt).
Record Count zeigt mir auch die Anzahl der Tabellen an, aber sobald ich mit TQuery.Fields [0].AsString drauf zugreifen möchte krachts in der Form das er meint das Array-Maxium wäre überschritten (also keine Einträge).
Mich wundert nur a) das er sagt er hat einen Spaltennamen der stimmig ist, b) Recordcount mir die richtige Anzahl an Records anzeigt, aber c) ich auf keinen der Records zugreifen kann.

Was kann das sein ?!

Dasselbe gilt im übrigen auch für "SHOW DATABASES" und "DESCRIBE TABLES".

Liegt das vllt irgendwie an ODBC (Einschränkung im Befehlssatz der an MySQL weitergegeben wird, oder vllt sogar am Treiber ?!)

hier mal mein code-fragment :

Delphi-Quellcode:
procedure TfrmMain.Button3Click(Sender: TObject);
var list : TStringList;
    tq : TQuery;
begin
  tq := TQuery.Create(self);
  tq.DatabaseName := 'MySQL';
  list := TStringList.Create;
  tq.Active := false;
  tq.SQL.Text:='SHOW TABLES';
  tq.active := true;
  info (inttostr (tq.RecordCount));
  while not tq.Eof do
  begin
    list.Add(tq.Fields[0].AsString);
    tq.Next;
  end;
  list.destroy;
  tq.Destroy;
end;
LG
TheMason

[edit=MrSpock]Delphi Code-Tags eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz