Einzelnen Beitrag anzeigen

ggscholz

Registriert seit: 20. Nov 2013
59 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Mehrere Datensätze mit SQL-Befehl Update schneller aktualisieren

  Alt 28. Dez 2022, 17:33
Dank schon mal an dieser Stelle für die vielen Hinweise!

Zitat:
TigerLilly
Was ist das Problem eigentlich? Dauert das Update für die per VPN angebundenen zu lange?
Behindern die Updates sich gegenseitig und machen das langsam oder weil Deadlock unmöglich?
Ich bekomme von den Anwendern (vor allen Dingen aus dem neuen, externen Lager) gelegentlich den Hinweis, das nicht alle gescannten Kartons einen Lagerplatz bekommen haben. In der aktuellen Version wird, wenn kein Lagerplatz vorhanden ist, eine passender Eintrag auf einem Buchungsprotokoll vermerkt.

Eine konkrete Fehlermeldung habe ich bisher nicht bekommen. Wie gesagt, es gibt diesen Fehler zur Zeit nicht sehr oft. Aber ich erwarte, das es mehr Probleme geben wird, wenn an mehreren Rechnern enBlock Datensätze mit einem Update bearbeitet werden. Dem möchte ich mit einer Optimierung der Datenverarbeitung vorbeugen

Zitat:
Jasocul
Nutze Transaction und sorge im Fehlerfall für ein Rollback
Das ist ein Baustein, den ich in der neuen Version verwenden werde, auf jeden Fall.

Zitat:
Vielleicht kannst du beim Update auch ein Kennzeichen oder Timestamp mitführen.
Das ist schon umgesetzt, es wird eine Auftragsnummer erstellt und zu jedem Datensatz eingetragen, zusätzlich eine Detailnummer in der Reihenfolge der Buchung. Timestamp wäre auch möglich, ich brauche aber die Reihenfolge der Buchungen, wie sie vom Mitarbeiter eingelesen werden.

Zitat:
Für mich läuft es im Grunde auf einen Vorher-Nachher-Vergleich hinaus
Ja, das habe ich befürchtet. Es ist kein wirkliches Problem in der Programmierung, ich hatte nur gehofft, das es doch noch irgendwelche versteckten Rückmeldung aus der DB geben könnte, was da im einzelnen passiert ist.

Zitat:
TigerLilly
Du könntest die Updates in eine Stored Procedure übergeben, dann kannst du dir auch die Infos zurückgeben lassen, die du brauchst und die Daten müssen nicht via langsamen(?) VPN hin und her geschickt werden.
Hab ich für die einzelne Buchung mal umgesetzt, hat gut funktioniert. Wie wird denn dann so ein Block von Update-Befehlen übergeben, bzw, wie kommt der Block vom out-Daten zurück? Da ist mir noch kein Beispiel untergekommen.

Zitat:
hoika
Hallo,
und ich komme mal mit dem berühmten "Prepare" um die Ecke.
Da habe ich immer wieder mal gelesen, das das Prepare schon implementiert ist. Deswegen habe ich mich damit noch nicht wirklich beschäftigt. Aber der Einzeiler im Code geht ja immer

Grüße Gerd
Gerd
  Mit Zitat antworten Zitat