Entwickler-Ecke

Datenbanken - MySQL: Alle Feldnamen einer Tabelle


Alibi - Do 12.12.02 21:45
Titel: MySQL: Alle Feldnamen einer Tabelle
Hi,
ich will überprüfen, ob in einer mySQL db schon ein bestimmter Satz Felder in einer bestimmten Table vorhanden ist.
Wie bekomm ich also alle Feldnamen der Tabelle blubb in eine TStringList bla?
Für den DBZugriff verwende ich ZeosLib.


neojones - Fr 13.12.02 10:39

Indem Du das SQL-Statement "DESC TABLE" ausführst. Das gibt als Ergebnismenge die Feldnamen und Typen zurück und die kannst Du dann mit einer Schleife in eine Stringliste einlesen.


Alibi - Fr 13.12.02 15:17

Danke, bloß wie les ich das Resultat von dem SQL Query aus? TZMySQLQuery ist leicht unübersichtlich. :)


bis11 - Fr 13.12.02 16:09

Hier ein Beispiel, was aber umgeschrieben auf die ZeosLibKomponenten genau so gut funktioniert :


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  HerstellerZub := TStringList.Create;                 
  HerstellerHardw := TStringList.Create;              
  with DatenModul.ADOQueryZubehoer do begin                              
    SQL.Clear;                                                       
    SQL.Add(PChar(selectorderspalte(PChar('ZubehoerHersteller'),           
       PChar('Zubehoerstammdaten'),PChar('ZubehoerHersteller'))));      
    Open;             
    HerstellerZub.Clear;HerstellerHardw.Clear;  
    Active := True;           
    while not Eof do begin 
      HerstellerZubehoerAbfrage.Items.Add(Fields[0].AsString);                 
      HerstellerZub.Add(Fields[0].AsString);  
      next;                 
    end;                    
    Active := False;    
  end;


Setze einfach Deine Komponenten ein und dann sollte es funktionieren, ich habe bei diesem Beispiel die Datenbankkompo's in einem Datenbank-Modul.


Alibi - Fr 13.12.02 16:30

Geht wunderbar. :)
Wusste halt nur nich, wie ich auf ein Result zugreife, wenn ich kein Feldnamen habe. :)