Einzelnen Beitrag anzeigen

Exterior

Registriert seit: 24. Jun 2008
33 Beiträge
 
#1

Tabellenkopf nach SQL-Abfrage auslesen?

  Alt 25. Feb 2009, 00:27
Datenbank: Access • Zugriff über: ADO
Hallo an alle, ich hab schon wieder eine Frage:

Ich arbeite momentan mit einer ADO-Connection und einer ADOQuery, beides auf ein DataModule ausgelagert.
Außerdem habe ich in diesem DataModule unter Public noch ein dynamisches Array namens myArray.

Nun übergebe ich meiner Prozedur die SQL-Anweisung. Die Prozedur deaktiviert die Query und setzt die SQL-Anweisung ein. Danach wird geprüft, ob es eine Auswahl- oder Aktions-Abfrage ist (ist momentan sehr simpel gestaltet, wollte nur mal schnell bissel was probieren).
Wenn es sich um eine Auswahl-Abfrage handeln sollte, dann wird der Inhalt des Dynaset in das Array übertragen.

Das alles habe ich momentan mit folgendem Code gelöst:

Delphi-Quellcode:
procedure TDBModul.Abfrage(q: string);
var ex : boolean;
    i, j : integer;
    exString : string;
begin
ex := true;

//Prüfen, ob Auswahl- oder Aktions-Abfrage vorliegt
exString := '';
for i := 1 to 6 do
  exString := exString + upcase(q[i]);

if exString = 'SELECT'
  then
    ex := false;


  QueryModul.Active := false;
  Querymodul.SQL.Text := q;

  if ex
    then
      begin
        QueryModul.ExecSQL;
      end
    else
      begin
        QueryModul.Active := true;

        setArray; //passt die Größe des Arrays an das Dynaset an

        for i := 0 to QueryModul.RecordCount-1 do
          begin
            for j := 0 to QueryModul.FieldCount-1 do
              MyArray[i,j] := QueryModul.Fields.Fields[j].AsString;

            QueryModul.Next;
          end;
      end;
Wie gesagt, er ist recht einfach gehalten und ich habe ihn auch noch nicht testen können. Aber ich denke, dass das so funktionieren müsste.

Nun aber zu meinem Anliegen:
Auf diese Art bekomme ich ja nur den Inhalt in das Array. Allerdings bräuchte ich auch noch die Feld- bzw. Tabellennamen (Also die, auf die man mit FieldByName zugreift).
Die sollen in der ersten Zeile des Arrays gespeichert werden, allerdings habe ich keine Ahnung, wie ich auf die zugreifen kann

Könnt ihr es mir sagen?
  Mit Zitat antworten Zitat