AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB Access und While??????
Thema durchsuchen
Ansicht
Themen-Optionen

DB Access und While??????

Ein Thema von Funjoy · begonnen am 21. Apr 2004 · letzter Beitrag vom 21. Apr 2004
Antwort Antwort
Funjoy

Registriert seit: 21. Apr 2004
2 Beiträge
 
#1

DB Access und While??????

  Alt 21. Apr 2004, 15:13
Hallo Delphi coder,

Ich habe ein kleines Problem mit einer ausgabe von Daten aus meiner Access DB. Ich bin noch neuling in Delphi bzw. Object Pascal und weiß nun nicht mehr weiter
Also meine DB ist folgendermaßen aufgebaut:
http://people.freenet.de/funjoy/screenDB.gif

So nun soll er mir alle Daten in ein TreeView ausgeben und richtig ein sortieren. Dazu habe ich folgende Funktion geschrieben:
Delphi-Quellcode:
function TfrmAppOption.entrys(i: Integer): TTreeNode;
var st: String;
    x: Integer;
    en: TTreeNode;
 begin
   SQL.Active := false;
   SQL.CommandText := 'SELECT*FROM app WHERE einordnung='+IntToStr(i)+' ORDER BY sort';
   SQL.Active := true;
   while not SQL.Eof do
    begin
      if SQL.FieldByName('einordnung').AsInteger = 0 then
       begin
         with Tree.Items do
          begin
            st := SQL.FieldByName('appname').AsString;
            entrys := Add(nil,st);
          end;
       end
      else
       begin
         with Tree.Items do
           begin
           st := SQL.FieldByName('appname').AsString;
           en := Tree.Items.GetFirstNode;
           entrys := ADDChild(en,st);
           end;
       end;
       entrys(SQL.FieldByName('id').AsInteger);
       SQL.Next;
    end;
 end;
die Funktion rufe ich dann über eine OnShow Methode auf:
Delphi-Quellcode:
procedure TfrmAppOption.TabSheet1Show(Sender: TObject);
 begin
   Tree.Items.Clear;
   entrys(0);
 end;
Nun Compliere ich das Ganze und Schau mir das Ergebnis an doch er gibt mir nur folgendes Aus:
Java Script
- Alert Box

Warum geht er nicht alles durch und liefert folgendes Ergebnis:
Java Script
- Alert Box
- PopUp

PHP
- Echo

Bitte Um Hilfe

MfG Funjoy
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#2

Re: DB Access und While??????

  Alt 21. Apr 2004, 16:43
Moin moin

Das Problem ist, das du dir bei dem rekursivem Aufruf dein Abfrageergebnis zerschiest..

  entrys(SQL.FieldByName('id').AsInteger); Ruft die Funktion erneut auf, aber :

Delphi-Quellcode:
  SQL.Active := false;
  SQL.CommandText := 'SELECT*FROM app WHERE einordnung='+IntToStr(i)+' ORDER BY sort';
  SQL.Active := true;
^^ da sprichst du ja die selbe Komponente an die in der 1. Instanz deiner Funktion schon benutzt wurde...

Du musst deine Querys zur Laufzeit erstellen, so dass für jeden Durchlauf der Funktion auch eine eigene Abfrage erzeugt wird...


schönen Gruß

Sam

[edit]

und das wird so glaub ich nicht funktionieren:

  en := Tree.Items.GetFirstNode; damit werden ja alle nodes (bis auf PHP) an den obersten Knoten angehängt.

[/edit]

[edit2]

So, versuch das mal...

Delphi-Quellcode:
procedure TForm1.entrys(i : Integer; aParent : TTreenode);
var st: String;
    myQuery : TADOQuery;
begin
  myQuery := TADOQuery.create(Self);
  with myQuery do begin
    connection := ADOConnection1; //oder wie auch immer du nach Access Connectest ;-)
    close;
    sql.clear;
    sql.add('Select *from app where einordnung= '+
             IntToStr(i)+
            ' ORDER BY sort');
    open;

    while not Eof do begin
      with Tree.Items do begin
        st := FieldByName('appname').AsString;
        entrys(FieldByName('id').AsInteger, ADDChild(aParent,st));
      end;//with
      Next;
    end;/eof = true
  end;//with
  myQuery.free;
end;
und der Aufruf so:

Delphi-Quellcode:
  tree.Items.clear;
  entrys(0, nil);
schönen Abend noch

Sam

[/edit2]

[edit3]

Oh Herr schenk Hirn ganz vergessen:

Herzlich Willkommen in der Delphipraxis


[/edit3]
  Mit Zitat antworten Zitat
Funjoy

Registriert seit: 21. Apr 2004
2 Beiträge
 
#3

Re: DB Access und While??????

  Alt 21. Apr 2004, 17:14
Hi BluesKid Danke
Muss jetzt nur noch durch die Procedur durchblicken aber ansonsten funktioniert das schonmal

MfG Funjoy
  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 23:06 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