AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten kommen in Datenbank nicht an

Daten kommen in Datenbank nicht an

Ein Thema von zeras · begonnen am 29. Mai 2023 · letzter Beitrag vom 29. Mai 2023
Antwort Antwort
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.619 Beiträge
 
Delphi 12 Athens
 
#1

Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 15:56
Datenbank: Sqlite • Version: aktuell • Zugriff über: Firedac
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;
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
rider

Registriert seit: 11. Aug 2006
90 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 16:27
...

Geändert von rider (29. Mai 2023 um 18:57 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.619 Beiträge
 
Delphi 12 Athens
 
#3

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 16:44
: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?

'UPDATE MachineVersions SET Version_komplett = :Feld1, NC = :Feld2, MAJ_VER = :Feld3, MIN_VER = :Feld4, REL_VER = :Feld5, SOT_VER = :Feld6 WHERE MachineNo = xxxxxxxx;'
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 17:18
Wenn UpdateMachineData in einem Thread aufgerufen wird, dann lies das mal.

https://docwiki.embarcadero.com/RADS...ading_(FireDAC)
Chris
  Mit Zitat antworten Zitat
mmw

Registriert seit: 10. Sep 2019
Ort: OWL
329 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 17:29
Hallo,

in #4 fehlt im Link die schließende Klammer

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

Gruß
  Mit Zitat antworten Zitat
rider

Registriert seit: 11. Aug 2006
90 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 18:16
...

Geändert von rider (29. Mai 2023 um 18:57 Uhr)
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 18:24
Wenn UpdateMachineData in einem Thread aufgerufen wird, dann lies das mal.

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

[Edit]Klammer hat gefehlt.[/Edit]
Chris
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.619 Beiträge
 
Delphi 12 Athens
 
#8

AW: Daten kommen in Datenbank nicht an

  Alt 29. Mai 2023, 19:16
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.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:36 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