Ja, das bin ich,
Ich bin noch ein Stück weiter gekommen, das Problem, liegt im Zerstören der Globalen Var. DataMB256Plus
DataMB256plus := '';
Setze ich diese Var. in der Procedure Bufferverarbeitung auf Leer, werden Datensätze zerstört,
Setze ich diese Var. erst nach dem Eintrag in die Datenbank auf Leer, habe ich das Problem, das wenn eine Datensatz nicht richtig mit dem Wert 'Ereignis' anfängt, der Var. nie auf Leer gesetzt wird.
Das Problem, liegt darin, das wenn Du dir mal den Datensatz anschaust, sieht man das nie ein saubere Anfang und ein sauberes Ende da ist, weil die Procedure
Delphi-Quellcode:
{Daten von COM-Schnittestelle lesen}
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
immer genau das ließt, was im Speicher ist.(Puffer der EMA).
Das heißt, das durch das Zerstören, je nach angefallenen Daten die Var. zerstört wird und somit noch nicht Übergeben Daten fehlen.
Ich trage ja nur komplette Datensätze ein, um keinen Müll in der Datenbank zu haben. Von den Daten aus dem folgenden Screenshot werden somit der erste und letzte Datensatz getilt. Liegt aber nicht am Datensatz selber, sondern daran das ich ja die Var. leere, obwohl sie noch nicht geleer werden dürfte..
Ich weiß nur echt gerade nicht, wie ich das in den Griff bekommen soll.
Am besten wäre, ich könnte schon beim einlesen nur jeweils einen Datensatzt aus dem Puffer der EMA holen. Weiß aber nicht wie oder ob es überhaupt geht.