Einzelnen Beitrag anzeigen

DaCoda

Registriert seit: 21. Jul 2006
Ort: Hamburg
105 Beiträge
 
Delphi 12 Athens
 
#1

FireDAC INSERT oder EDIT

  Alt 20. Mär 2023, 15:43
Datenbank: MariaDB • Version: 11 • Zugriff über: FireDAC
Hallo,
ich habe eine Tabelle, die einmal pro Sekunde "geupdatet" werden soll (in einer TIdThreadComponent);

Ich versuche das derzeit so, was aber nicht richtig funktioniert (Erhängt sich meistens sehr schnell):

Code:
procedure TKommunikation.trdSqlDatenRun(Sender: TIdThreadComponent);
var
  Loop: Integer;
begin
  for Loop := 1 to MaxmaschinenIndex do begin
    if (MaschinenListe[Loop].FrameType = 'TYP1') OR (MaschinenListe[Loop].FrameType = 'TYP2') then begin
        LogMaschinendatenToTempSql(Loop);
    end;
  end;
  Sleep(1000); //SqlDatenSleepTime);
end;

procedure TKommunikation.LogMaschinendatenToTempSql(Index: Integer);
begin
  Daten.tblMaschinendaten_Temp.Open;
  Daten.tblMaschinendaten_Temp.Filtered := False;
  Daten.tblMaschinendaten_Temp.Filter := 'MaschinenIndex = ' + QuotedStr(Index.ToString);
  Daten.tblMaschinendaten_Temp.Filtered := True;
  DbgInfo('Index: ' + Index.ToString + ' - Recordcount: ' + Daten.tblMaschinendaten_Temp.RecordCount.ToString);
  if Daten.tblMaschinendaten_Temp.RecordCount = 0 then begin
      Daten.tblMaschinendaten_Temp.Insert;
  end else begin
      Daten.tblMaschinendaten_Temp.Edit;
  end;

  Daten.tblMaschinendaten_TempMaschinenIndex.AsInteger := Index;
  Daten.tblMaschinendaten_TempTemperatur.AsInteger := MaschinenDaten[Index].ActTemperature;
  Daten.tblMaschinendaten_TempPartial_Stueckzaehler.AsInteger := MaschinenDaten[Index].Partial_Pcs;
  Daten.tblMaschinendaten_TempTotal_Stueckzaehler.AsInteger := MaschinenDaten[Index].Total_Pcs;
  Daten.tblMaschinendaten_Temp.Post;
  Daten.tblMaschinendaten_Temp.Close;
end;
Debuggers don’t remove bugs, they only show them in slow-motion.
  Mit Zitat antworten Zitat