Dieses Statement bearbeitet eine schon vorhandene Zeile, es fügt keine neue ein..
Hast du die falsche Stelle erwischt? ;)
Ich schau trotzdem mal mit dem Screenshot, ob ich nen "Einzeiler" gezaubert kriege..
Der müsste übrigens in jeder Datenquelle laufen, sonst bringt es nichts..
Gruss,
Tim
*EDIT* Bitte finde doch mal eine Zeile, in der "INSERT INTO" am Anfang steht ;)
Sollte es (nicht unbedingt SQL-Standard) nur die UPDATE-Zeile geben, könntest
du (in allen Datensendern) folgendes versuchen:
Code:
strSQL = "UPDATE `fms_fz` SET `status_fz`='" & strSimple(6) & "', `tki`='" & strSimple(9) & "', `user`='" & user & "' WHERE `kennung`='" & strSimple(1) & "' AND DATE_SUB( NOW( ), INTERVAL 15 SECOND) <= `timestamp`;"
Zur Erklärung: Das Original-Statement hat einen "WHERE" Abschnitt, je nach Ergebnis
dieses Abschnitts wird das UPDATE durchgeführt. Neben den fehlenden " ` " für Feld-
Bezeichner habe ich am Ende des Originals den Zusatz "AND ..." angefügt. Im
Zusatz wird die aktuelle Uhrzeit zum Zeitpunkt der Abfrage und "15 Sekunden" subtrahiert,
also ein Zeitstempel "erzeugt", der 15 Sekunden vor der Abfrage lag. Diese Zeit wird
mit dem Zeitstempel der aktuellen UPDATE-Reihe verglichen. Ist die Aussage (<=)
wahr (und alle anderen WHERE-Expressions auch), wird das Update ausgeführt, ansonsten
nicht. Da ich nur diese Zeitstempel-Abfrage angefügt habe, ist also das Ziel erreicht,
einen Datenbankeintrag nur dann zu aktualsieren, wenn innerhalb der letzten 15 Sekunden
keine andere Änderung derselben Kennung vorgenommen wurde.
An sich passt das aber nicht, da ein "UPDATE"-Befehl einfach nicht passt für die Aufgabe,
die hier geleistet werden soll (INSERT INTO) ..
Naja, zumindest weisst du also jetzt, wie du "die letzten 15 Sekunden" abfragst ^^