AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabellenkopf nach SQL-Abfrage auslesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenkopf nach SQL-Abfrage auslesen?

Ein Thema von Exterior · begonnen am 25. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
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
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Tabellenkopf nach SQL-Abfrage auslesen?

  Alt 25. Feb 2009, 01:01
Spaltenname:=QueryModul.Fields.Fields[j].FieldName; Bei den Tabellennamen wird das schwierig, was ist wenn deine SQL-Abfrage mehrere Tabellen abfragt?
  Mit Zitat antworten Zitat
Exterior

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

Re: Tabellenkopf nach SQL-Abfrage auslesen?

  Alt 25. Feb 2009, 01:27
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.
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz