Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   UPDATE macht es nicht so wie ich es will (https://www.delphipraxis.net/179689-update-macht-es-nicht-so-wie-ich-es-will.html)

DeddyH 25. Mär 2014 11:28

AW: Heureka
 
Zitat:

Zitat von lu maak (Beitrag 1253384)
Hi DeddyH, jobo,

weil es sich errechnen läßt sind sie immer aktuell, kann es und soll auch befüllt werden.

:?: Den Satz habe ich nicht verstanden.
Zitat:

Zitat von lu maak (Beitrag 1253384)
Der berechnete Wert soll sichtbar in der Tabelle erscheinen und bei Änderung sich anpassen.

Also sind die von jobo angesprochenen Mechanismen angesagt (Trigger etc.). Also gut, nehmen wir mal an, es existiert ein Trigger, der bei INSERT, UPDATE und DELETE feuert (also allen Kommandos, die die Summe beeinflussen). Fügen wir mal ein paar Datensätze mit gleichem garniturnamen in die leere Tabelle ein und schauen, was dabei passiert:
1. DS wird 2 mal geändert, erst durch das INSERT und dann durch den Trigger.
2. DS wird 2 mal geändert, der 1. durch den Trigger nochmals.
3. DS wird 2 mal geändert, die vorhandenen 2 durch den Trigger auch.
Etc. pp.
Man muss daher bei größeren Änderungsoperationen zunächst den Trigger deaktivieren, wenn man bis Weihnachten noch fertig werden will. Nun bauen wir uns eine View garnitursummen:
SQL-Code:
SELECT
  garniturname, SUM(Menge * mm) AS smm
FROM
  garnitur
GROUP BY
  garniturname
Nun kann man das zusammenjoinen:
SQL-Code:
SELECT
  G.Typ, G.Garniturname, G.Menge, G.mm, S.smm
FROM
  garnitur G
JOIN
  garnitursummen S ON S.Garniturname= G.Garniturname
WHERE
  G.Typ = 'L'
Ist das jetzt schlechter so?

lu maak 25. Mär 2014 16:48

Lassen wir das erstmal.
 
Hi Jo,


der Query funktioniert so wie er da steht. Im AbsDbManager als auch in Delphi.
Ein 'as irgendwas' alleine macht noch kein Mecker, aber das er sich aufrufen läßt?
Möglicherweise sowas wie NULL oder NIL, und vergleicht mit nix, mär wasess ned?
Erinnert mich an die gute alte Z80 Zeit, ab und an kam jemand und hatte wieder
undokumentierte exotische Opcodes zusammen gewurschtelt. Bei den heutigen CPU's
gibts das nicht mehr.

Egal. Lassen wir das erstmal.

Gruß
lu maak

p80286 26. Mär 2014 15:53

AW: Lassen wir das erstmal.
 
Zitat:

Zitat von lu maak (Beitrag 1253449)
Ein 'as irgendwas' alleine macht noch kein Mecker, aber das er sich aufrufen läßt?
Möglicherweise sowas wie NULL oder NIL, und vergleicht mit nix, mär wasess ned?

Könnte mir das bitte jemand erklären?

Zitat:

Zitat von lu maak (Beitrag 1253449)
Erinnert mich an die gute alte Z80 Zeit, ab und an kam jemand und hatte wieder
undokumentierte exotische Opcodes zusammen gewurschtelt. Bei den heutigen CPU's
gibts das nicht mehr.

Was war den an den bisher geposteten SQL-Codes exotisch.

wie jobo schon schrieb, das Eintragen der Zuglänge in eine Tabelle ist vollkommen Überflüssig.

Gruß
K-H

DeddyH 26. Mär 2014 16:00

AW: Lassen wir das erstmal.
 
Zitat:

Zitat von p80286 (Beitrag 1253564)
Könnte mir das bitte jemand erklären?

Nö, ich hab's selbst nicht verstanden.
Zitat:

Zitat von p80286 (Beitrag 1253564)
wie jobo schon schrieb, das Eintragen der Zuglänge in eine Tabelle ist vollkommen Überflüssig.

Schon die "Milimetersumme" (Menge * mm) ist überflüssig, die lässt sich ja auch zur Laufzeit berechnen (siehe View-Statement).
Aber wer nicht will, der hat schon :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 Uhr.
Seite 2 von 2     12   

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 by Thomas Breitkreuz