![]() |
Datenbank: Access • Zugriff über: ADO
Tabellenkopf nach SQL-Abfrage auslesen?
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:
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.
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; 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? |
Re: Tabellenkopf nach SQL-Abfrage auslesen?
Delphi-Quellcode:
Bei den Tabellennamen wird das schwierig, was ist wenn deine SQL-Abfrage mehrere Tabellen abfragt?
Spaltenname:=QueryModul.Fields.Fields[j].FieldName;
|
Re: Tabellenkopf nach SQL-Abfrage auslesen?
Ach verdammt, hatte mich falsch ausgedrückt -.-' Anstelle von "Tabellenname" sollte da oben lieber "Spaltenname" stehen, das sollte nicht in dem Sinne werden, dass ich den Feld- und Tabellenname brauche, sondern ich wollte nur das Wort "Feldname" noch näher beschreiben und habe dann Tabelle statt Spalte geschrieben -.-'
Lange Rede, kurzer Sinn: Dein Code hat meine ganze Frage schon beantwortet, vielen Dank ;) Werde das morgen mal testen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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-2025 by Thomas Breitkreuz