Autor Beitrag
OlliWausD
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Mi 26.01.05 13:58 
hi jungs, ich hab hier ein Programm, welches Modifiziert werden soll.

In Query1 werden alle Rechnungen über einen bestimmt zeitraum angezogen.
Anschließend wird für jeden Datensatz eine 2. Query geöffnet um die Vorgangspositionen herauszusuchen. Für Query2 gibt es aber keinen Übergabeparameter, obwohl der SQL-befehl jenen benötigt !!

Ich verstehe nicht, wie das Programm laufen KANN ! Es geht, aber ich verstehs net.

Hier mal die Beiden Querys

Im Objektinspektor ist folgendes eingetragen:
ausblenden Delphi-Quelltext
1:
2:
Query1: Select * from Rechnung where Datum>=:VonDatum
Query2: Select * from Rechnung_pos where Nr=:"Nr"


Die Query1 wird geöffnet, und dann kommt

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
while not Query1.eof do
begin
  Query2.open;
  ...
  ...
end;


Weder in der Schleife, noch sonst wo im Quellcode wird der Parameter für Query2 übergeben. Ich bin Ratlos. Wie kann denn das Funktionieren??

mfg

OlliW

_________________
Take it easy
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 27.01.05 09:30 
Die beiden Queries sind wahrscheinlich über eine Master-Detail-Beziehung miteinander verknüpft. Schau mal im OI von Query2, ob da eine Master-Tabelle eingetragen ist. Wenn ja, wird der Wert vom aktuell selektierten Datensatz aus Query1 als Parameter übernommen und die Abfrage durchgeführt.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Do 27.01.05 09:33 
War auch meine Vermutung. Hatte im OI aber keine Verknüpfungsmöglichkeit dafür gesehen. Demnach vermute ich, dass das nur mit TTable geht und nicht mit TQuery.
OlliWausD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Do 27.01.05 11:40 
sorry jungs, aber Master-Detail gibts bei Querys nicht.
Über die "Param-Einstellungen" in der Query steht auch nichts mit einem Verweis auf irgendetwas.

hab mir auch schon das Formular im Editor angeschaut. Nichts !!

Das Programm dürfe doch gar nicht funktionieren !!!
Ich mein, mir ist das jetzt eigentlich egal, da ich einfach die Querys modifizier und sie weiter benutze, aber hier geht es ums Prinzip! :wink:

Vielleicht noch ne Idee??

mfg

OlliW

_________________
Take it easy
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 27.01.05 17:17 
Werden in den Queries irgendwelche Ereignisse verwendet? Schau doch da einfach mal nach.

Das mit den Queries ist mir auch erst danach eingefallen, verwende solche M-/D-Beziehungen nie *g*
OlliWausD Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 212

Win 2000/XP
Delphi 5 Professional - Interbase/Firebird
BeitragVerfasst: Do 27.01.05 18:50 
nope, weder Calc-Fields, noch sonst ein Ereignis befindet sich in den Querys. Auch zur Laufzeit wird keines Zugewiesen.

Die 1. Query hat keine Datasource,
Die 2. Query jedoch schon, auf die aber nie zugegriffen wird !

mfg

OlliW

_________________
Take it easy
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Do 27.01.05 18:53 
OlliWausD hat folgendes geschrieben:
Die 1. Query hat keine Datasource,
Die 2. Query jedoch schon, auf die aber nie zugegriffen wird !

Ich denke genau das ist es. Denn damit kann man IMHO eine M-/D-Beziehung mit Queries realisieren. eine DataSource stellt Daten aus Query1 bereit. Query2 hat in diese DS dann in der Eigenscahft DataSource eingetragen? Dann ist alles klar, darüber werden die Parameter ja befüllt.