Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Daten kommen in Datenbank nicht an (https://www.delphipraxis.net/213117-daten-kommen-datenbank-nicht.html)

zeras 29. Mai 2023 15:56

Datenbank: Sqlite • Version: aktuell • Zugriff über: Firedac

Daten kommen in Datenbank nicht an
 
Ich schreibe in eine Datenbank verschiedene Sachen.
Später müssen einige Werte im Thread aktualisiert werden. Dies scheint aber nicht zu klappen. Wenn ich dieselbe Prozedure außerhalb vom Thread aufrufe, dann klappt das Update der Daten, innerhalb des Threads aber nicht.
Die Objekte sind in einem Datamodul.
Was mache ich falsch?

Delphi-Quellcode:
Function TDataModule2.UpdateMachineData(SWInfo: tSWINfo): Boolean;
var
  SqlState: String;

begin
  result := False;
  try

    SqlState := Format('UPDATE %s SET ', [TableNameMachine]);
    SqlState := SqlState + Format('%s = :Feld1, %s = :Feld2, %s = :Feld3, %s = :Feld4, %s = :Feld5, %s = :Feld6', [fieldVersionComplete, fieldNCVersion, fieldMAJ_VER, fieldMIN_VER, fieldREL_VER, fieldSOT_VER]);
    SqlState := SqlState + Format(' WHERE %s = %s;', [fieldMachineNo, SWInfo.Manu]);
    FDQuery1.SQL.Text := SqlState;
    FDQuery1.ParamByName('Feld1').AsString := SWInfo.VersionComplete;
    FDQuery1.ParamByName('Feld2').AsString := SWInfo.NCVersion;
    FDQuery1.ParamByName('Feld3').AsString := SWInfo.MAJ_VER;
    FDQuery1.ParamByName('Feld4').AsString := SWInfo.MIN_VER;
    FDQuery1.ParamByName('Feld5').AsString := SWInfo.REL_VER;
    FDQuery1.ParamByName('Feld6').AsString := SWInfo.SOT_VER;
    FDQuery1.ExecSQL(SqlState);

    Result := True;
  except
    on E: Exception do ShowMessage(E.Message);
  end;
end;

rider 29. Mai 2023 16:27

AW: Daten kommen in Datenbank nicht an
 
...

zeras 29. Mai 2023 16:44

AW: Daten kommen in Datenbank nicht an
 
Zitat:

Zitat von rider (Beitrag 1522876)
:FeldX und %s sind mMn jeweils vertauscht.

Ich habe noch einmal den SQLState kopiert. Sieht meines Erachtens aber OK aus.
Oder habe ich doch noch etwas übersehen?

Delphi-Quellcode:
'UPDATE MachineVersions SET Version_komplett = :Feld1, NC = :Feld2, MAJ_VER = :Feld3, MIN_VER = :Feld4, REL_VER = :Feld5, SOT_VER = :Feld6 WHERE MachineNo = xxxxxxxx;'

hhcm 29. Mai 2023 17:18

AW: Daten kommen in Datenbank nicht an
 
Wenn UpdateMachineData in einem Thread aufgerufen wird, dann lies das mal.

https://docwiki.embarcadero.com/RADS...ading_(FireDAC)

mmw 29. Mai 2023 17:29

AW: Daten kommen in Datenbank nicht an
 
Hallo,

in #4 fehlt im Link die schließende Klammer

https://docwiki.embarcadero.com/RADS...ding_(FireDAC)

Gruß

rider 29. Mai 2023 18:16

AW: Daten kommen in Datenbank nicht an
 
...

hhcm 29. Mai 2023 18:24

AW: Daten kommen in Datenbank nicht an
 
Zitat:

Zitat von hhcm (Beitrag 1522878)
Wenn UpdateMachineData in einem Thread aufgerufen wird, dann lies das mal.

https://docwiki.embarcadero.com/RADS...ding_(FireDAC))


[Edit]Klammer hat gefehlt.[/Edit]

zeras 29. Mai 2023 19:16

AW: Daten kommen in Datenbank nicht an
 
Guten Abend,

danke für eure Hinweise.
Offenbar habe ich doch noch einen Bug in meinen anderen zigtausend Zeilen. Es sieht so aus, als wenn der Eintrag garnicht in der Tabelle ist. Somit kann ich die Werte auch nicht updaten.
Hätte mich vielleicht doch eher in die Sonne setzen sollen, anstelle vorm Rechner.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz