Moin Leute,
ich habe ein altes Progamm bekommen, das ich auf den neusten Stand bringen soll, nun habe ich da ein Problem, das ich nicht lösen kann und bitte um eure Unterstützung.
Normalerweise arbeite ich mit C#, aber nun muss ich mit Object Pascal rumschlagen.
Ich habe eine Tabelle, die eine Spalte mit den Namen "Ordnung" hat. Diese Spalte wird genutz um die Reihen zu ordnen.
Ich möchte mit einer einzige Query (falls möglich), die Spalte "Ordnung" für jede Zeile einen Wert dazurechnen (wie Count).
Table before update
Spoiler anzeigen
Table after update
Spoiler anzeigen
Meine Vorstellung
Das Programm
Spoiler anzeigen
In Delphi gibt es eine Funktion die sehr langsam läuft. Diese Funktion läuft mit einer schleife. Desto mehr Zeile ich habe in einer Tabelle, desto länger dauert es bis eine Zeile hinzugefügt wird.
Ab 50 Zeilen dauert es schon mal 2 sek.
Ich habe schon eine andere Schleife mit einer einzige Query gelöst (Insert und Select). Dann hat es statt 5 min .... einfach 1,5 Sekunden gedauert.
*Elerdigt*
Für google falls jemand auch das Problem hat.
Spoiler anzeigen
UPDATE POS
SET ORDNUNG = CASE
WHEN ORDNUNG >= :QS1 THEN ORDNUNG + 1
ELSE Ordnung
END
WHERE AUFNR = :QS2
ich habe ein altes Progamm bekommen, das ich auf den neusten Stand bringen soll, nun habe ich da ein Problem, das ich nicht lösen kann und bitte um eure Unterstützung.
Normalerweise arbeite ich mit C#, aber nun muss ich mit Object Pascal rumschlagen.
Ich habe eine Tabelle, die eine Spalte mit den Namen "Ordnung" hat. Diese Spalte wird genutz um die Reihen zu ordnen.
Ich möchte mit einer einzige Query (falls möglich), die Spalte "Ordnung" für jede Zeile einen Wert dazurechnen (wie Count).
Table before update
ID | Value1 | Value2 | Value3 | Ordnung |
1 | A | B | C | 0 |
2 | A | B | C | 0 |
3 | A | B | C | 0 |
4 | A | B | C | 0 |
Table after update
ID | Value1 | Value2 | Value3 | Ordnung |
1 | A | B | C | 1 |
2 | A | B | C | 2 |
3 | A | B | C | 3 |
4 | A | B | C | 4 |
Meine Vorstellung
Das Programm
In Delphi gibt es eine Funktion die sehr langsam läuft. Diese Funktion läuft mit einer schleife. Desto mehr Zeile ich habe in einer Tabelle, desto länger dauert es bis eine Zeile hinzugefügt wird.
Ab 50 Zeilen dauert es schon mal 2 sek.
Ich habe schon eine andere Schleife mit einer einzige Query gelöst (Insert und Select). Dann hat es statt 5 min .... einfach 1,5 Sekunden gedauert.
*Elerdigt*
Für google falls jemand auch das Problem hat.
UPDATE POS
SET ORDNUNG = CASE
WHEN ORDNUNG >= :QS1 THEN ORDNUNG + 1
ELSE Ordnung
END
WHERE AUFNR = :QS2
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dekras123“ ()