AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Queryfelder ohne Tablerows?
Thema durchsuchen
Ansicht
Themen-Optionen

Queryfelder ohne Tablerows?

Ein Thema von mcinternet · begonnen am 6. Jun 2019 · letzter Beitrag vom 6. Jun 2019
Antwort Antwort
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 12:15
ok, das würde ich noch verstehen. Daher gebe ich Dir hier mal das Select-Statement und als Screenshot-Anhang die Felder der Query :

Code:
SELECT DISTINCT Bk_LieferantNr, Bk_Datum, Name1, bp.ID, bk.ID AS BkID, Bk_BestellNr, Bp_Bestellmenge, Bp_Liefermenge,
coalesce(Bp_Index,0) Bp_Index, Bk_Rohstoff, Bp_Rohstoff, Bp_Termin, Bp_AB, Bk_AB, RO_Bezeichnung_1, Ah_Liefermenge
FROM BESTELLKOPF bk
LEFT JOIN BESTELLPOSITION bp ON bp.Bp_BestellNr = bk.Bk_BestellNr
LEFT JOIN ROHSTOFFSTAMM ON Bp_Rohstoff = RO_Nummer
LEFT JOIN LIEFERANTENARTIKEL ON Bp_Rohstoff = ArtikelNr
LEFT JOIN ANLIEFERHISTORIE ah ON bp.Bp_Bestellnr = ah.Ah_BestellNr AND bp.Bp_Index = ah.Ah_Pos
LEFT JOIN LIEFERANTENSTAMM ls ON bk.Bk_LieferantNr = ls.Lieferant_Nr

WHERE (((Bp_Termin >= :Terminvon) AND (Bp_Termin <= :Terminbis) AND (Bp_Bestellmenge > 0) AND (Bp_Status < 2))
OR (Bp_Termin IS NULL AND Bk_Rahmenvertrag = 1))
AND (Bk_LieferantNr >= :Lieferantvon) AND (Bk_LieferantNr <= :Lieferantbis)
AND (Bk_Fertig <> 'True')
AND ((Ah_Liefermenge IS NULL) OR ((Bp_Bestellmenge - Bp_Liefermenge) > 0))

ORDER BY Name1, Bp_Rohstoff, Bp_Termin, Bp_Index

Da können doch meiner Meinung nach, die Felder "Mahnen", "Verzug" und "Rohstoff" gar nicht auftauchen!!
Auch das automatische Zufügen der Felder bringt diese drei nicht.


beste Grüße

mcinternet
Angehängte Grafiken
Dateityp: png queryRückstand.PNG (19,8 KB, 12x aufgerufen)
Jörg

Geändert von mcinternet ( 6. Jun 2019 um 12:19 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#2

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 12:29
Achso, genau umgekehrt.

Im Programm wird bereits etwas angesprochen, das das zugehörige SQL garnicht liefert.

Befremdlich.

Ok:

In der IDE mal auf das Formular gehen.
Doppelklick auf die Komponente qryRueckstand.
Es sollten die im Screenshot aufgeführen Felder angezeigt werden.

Rechte Maustaste.
Im Menü "Neues Feld" auswählen.
Im folgenden Dialog kannst Du nun auch Felder erstellen, die es nicht in der Datenbank gibt, z. B. berechnete Felder oder Felder, die aus eine Nachschlagtabelle befüllt werden sollen.

Schalte die Formularanzeige mal auf die Quelltextansicht um, suche Dir eines der Felder und schau mal nach, was da so "verhackstückt" wurde. Eventuell kannst Du so ja ein paar der "Fragezeichen", die der Quelltext momentan noch aufwirft, auflösen.

(Meine Beschreibung bezieht sich auf Delphi 7, kann sein, dass das heute etwas anders ist, aber die grobe Richtung dürfte stimmen.)
  Mit Zitat antworten Zitat
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 12:34
Das habe ich alles schon getan. Bin normal auf Qracle und die ODAC-Komponenten fixiert, aber dieses Projekt hier nutzt nun einmal die MYSQL.

Besagte rechte Maustaste "Alle Felder hinzufügen" bringt nix - diese drei tauchen nicht auf.
Wie gesagt, an diesem Projekt haben schon einige Köche den Brei verdorben und diverse Altlasten hinterlassen. Keiner hat dieses Projekt je von D7 auf XE... oder höher komplett durchgearbeitet. Alle haben den Löffel geworfen. Dementsprechend anspruchsvoll ist da nun meine Aufgabe.

Also muss ich das wohl unter "unvollendete Altlast" verbuchen und sehen, was ich daraus mache.....

Beste Grüße

Jörg
Jörg
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.599 Beiträge
 
Delphi 7 Professional
 
#4

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 12:50
Das habe ich alles schon getan. Bin normal auf Qracle und die ODAC-Komponenten fixiert, aber dieses Projekt hier nutzt nun einmal die MYSQL.

Besagte rechte Maustaste "Alle Felder hinzufügen" bringt nix - diese drei tauchen nicht auf.
Wie gesagt, an diesem Projekt haben schon einige Köche den Brei verdorben und diverse Altlasten hinterlassen. Keiner hat dieses Projekt je von D7 auf XE... oder höher komplett durchgearbeitet. Alle haben den Löffel geworfen. Dementsprechend anspruchsvoll ist da nun meine Aufgabe.

Also muss ich das wohl unter "unvollendete Altlast" verbuchen und sehen, was ich daraus mache.....

Beste Grüße

Jörg
Naja, das Dual von Oracle hab ich mir halt für FireBird (wie oben im Beispiel) "nachgebaut", kann man in MySQL auch machen.

Im Felddialog ging es mir nicht um das Hinzufügen von Feldern, sondern darum, was da bereits vorhanden ist, wurden die "vermissten" Felder also schon vorher hinzugefügt?

Der Screenshot lässt das vermuten. Irgendwo müssen die Felder herkommen und bereits definiert sein, sonst könnte Dir die IDE sie ja nicht anzeigen. Die Frage ist halt: Wo genau ist da was definiert?

Hast Du schon in den Quelltext des Formulars, also die DFM, geschaut.

Ggfls. mal alle Dateien des Projektes nach den Feldnamen durchsuchen. Für sowas nehme ich gerne den TotalCommander, der durchsucht ggfls. auch mal diverses "binäres Gelumpe". Damit kommt man dann aber in der Regel dem Ziel näher.
  Mit Zitat antworten Zitat
mcinternet

Registriert seit: 22. Apr 2010
Ort: Odenwald
193 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 13:17
Also,

erstmal die Richtigstellung, ja es geht um Coloumns nicht um Rows - sorry - mein Fehler.

die Analyse ergibt, dass diese Felder nie in der db waren. Sie sind auch vom Typ ftcalculated. Es wird dort eine Liste von Lieferanten, welche im Lieferrückstand sind,erzeugt. Soweit ok - dann kommt das Feld "Mahnen" ins Spiel. Das ist offensichtlich rein temporär, wird angeklickt "X" und die mit dem "X" werden gedruckt, danach wird das komplette Grid verworfen. Es wird also nix in der db gespeichert.
Das Compilieren dieses Teiles klappt auch soweit - die Felder sind assoziiert, also z.B. qryRueckstandMahnen ist vorhanden.

Somit bin ich da schon mal ein Stückchen weiter.

Ich danke Euch für die schnelle Hilfe zur Selbsthilfe. Das Ding ist echt ....


Beste Grüße


mcinternet
Jörg
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#6

AW: Queryfelder ohne Tablerows?

  Alt 6. Jun 2019, 12:41
Also geht es nicht um Rows, sondern um Columns?!
Dataset Felder ohne Äquivalent in der Query.

Mein Verdacht wäre, dass das jetzige Bild eine "historiche Entwicklung" wiedergibt. Wir machen hier also Softwarearchäologii..
Du musst einfach nur das Alter der Codeschicht um diese "Relikt" Felder analysieren und kannst dann vielleicht anhand alter Dokumentation rückschließen, was mit den Feldern geschehen ist und warum sie ausgestorben sind.

Nagut, mal ernst:
Ich tippe, die Felder wurden nicht mehr benötigt und unsauber entfernt, also nur aus der Query, ohne den "Feld Persistenzmechnismus" des Datasets zu berücksichtigen. Interessant wäre dann höchstens noch, warum die Relikt Felder ohne DB Schicht keine Fehler produzieren (oder lässt es sich z.B. deswegen eben nicht mehr kompilieren?) und welche Effekte sich durch Weglassen des zugehörigen Codes ergeben können.
Man kann natürlich auch auf DB Seite schauen, ob die Spalten noch in den Tabellen sind und ob diese Daten darin noch leben / genutzt werden. Oder mal einen alten Hasen fragen.
Gruß, Jo
  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 17:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz