AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery
Thema durchsuchen
Ansicht
Themen-Optionen

Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

Ein Thema von Kranky · begonnen am 29. Apr 2005 · letzter Beitrag vom 30. Apr 2005
Antwort Antwort
Seite 2 von 2     12   
Kranky

Registriert seit: 7. Dez 2004
8 Beiträge
 
Delphi 7 Enterprise
 
#11

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 29. Apr 2005, 22:29
Zitat von Jelly:
Du hast doch sicherlich irgendwo eine TQuery oder TADOQuery o.ä. Komponente auf deiner Form liegen, über die du den SQL Befehl ausführst. Und diese hat auch Ereignisse, und eins davon ist ein, das ausgelöst wird, wenn sich der Cursor ändert, sprich wenn du auf einen anderen Datensatz springst. Und daruaf muss du reagieren, denn wenn du auf den Betrieb 27 gehst, musst du dir diese 27 ja aus der 1. Query rausziehen, und als Parameter in der 2. Query nutzen.
Ich habe das jetzt mal in das AfterScroll-Ereignis ausgelagert, aber jetzt bekomme ich einen "list index out of bounds (0)" Error.

Delphi-Quellcode:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  with ADOQuery2 do begin
    Close;
    SQL.Clear;
    Parameters[0].Value:=AdoQuery1.FieldByName('pbID').AsInteger;
    SQL.Add('SELECT sName FROM schueler WHERE sBetrieb=:id');
    Open;
  end;
end;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 12:30
Parameters[0].Value:=AdoQuery1.FieldByName('pbID').AsInteger; Vielleicht existiert der Parameter mit dem Index 0 noch gar nicht. Du kannst ihn im Object-Inspector der IDE anlegen, oder im OnCreate-Event deiner Form mit AdoQuery2.CreateParameter().

Grüße vom marabu
  Mit Zitat antworten Zitat
Kranky

Registriert seit: 7. Dez 2004
8 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 12:36
Doch, der existiert. Den habe ich ja schon gestern im Objektinspektor erstellt, als ich den zweiten Query gleich nach dem ersten aufgerufen habe. Deswegen versteh ich die Fehlermeldung ja nicht, denn das ist der einzige Index, der falsch sein kann.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#14

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 12:55
Vertrauen ist gut - Kontrolle ist besser. Vor der Benutzung des Index 0 prüfe einfach den Wert von AdoQuery2.Parameters.Count.
  Mit Zitat antworten Zitat
Kranky

Registriert seit: 7. Dez 2004
8 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 13:35
Ich habe mir mal den Count-Wert ausgeben lassen. Der steht auf 1. Aber der durchläuft "AfterScroll" mehr als einmal. Und beim zweiten Durchgang ist der Wert von Count=0 und es kommt zum Fehler.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#16

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 14:25
Delphi-Quellcode:
procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
begin
  with ADOQuery2 do begin
    Close;
    SQL.Text := 'SELECT sName FROM schueler WHERE sBetrieb=:id';
    Parameters.ParamByName('id').Value := AdoQuery1.FieldByName('pbID').AsInteger;
    Open;
  end;
end;
Bei der Zuweisung des SQL-Statements wird intern die Parameterliste aufgebaut. Darum ist es besser du setzt den Parameter nach dieser Zuweisung. Anbei dein etwas verbogener Code. Auf zum nächsten Versuch.

Grüße vom marabu
  Mit Zitat antworten Zitat
Kranky

Registriert seit: 7. Dez 2004
8 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Zweites ADOQuery bekommt keine Daten vom ersten ADOQuery

  Alt 30. Apr 2005, 14:48
Danke danke danke... jetzt geht es!
Danke, dass ihr geduldig geblieben seid. War sicher nicht meine letzte DB-Frage *euchschonmalvorwarn*

MfG Jens
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 17:54 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