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?