AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FDQuery CachedUpdates Datensatz speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

FDQuery CachedUpdates Datensatz speichern?

Ein Thema von HCB · begonnen am 15. Apr 2023 · letzter Beitrag vom 15. Apr 2023
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.650 Beiträge
 
Delphi 12 Athens
 
#1

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 16:12
Interessant wären hier wirklich die Einstellungen der FDQuery.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.650 Beiträge
 
Delphi 12 Athens
 
#2

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 16:23
Achte darauf, dass in der FDQuery unter UpdateOptions.UpdateMode das upWhereKeyOnly eingetragen ist, und das für das Feld Nummer unter ProviderFlags das pfInKey angehakt ist. Das geht entweder über ein statisches Feld oder dynamisch im AfterOpen.

Es reicht übrigens, wenn Nummer das einzige statische Feld ist. Dazu muss in der Query unter FieldOptions der Wert für AutoCreateMode auf acCombineAlways stehen. Dann werden alle übrigen Felder dynamisch angelegt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
220 Beiträge
 
Delphi 12 Athens
 
#3

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 16:24
An den Eigenschaften der FDQuery wurde nichts geändert (also nur die Komponente platziert) und als SQL select * from sPersKto hinterlegt. Das ist alles.
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
220 Beiträge
 
Delphi 12 Athens
 
#4

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 16:34
upWhereKeyOnly ist eingetragen, AutoCreateMode steht auf acCombineAlways, aber ProviderFlags finde ich nicht.
Geht aber mit den ersten zwei Einstellungen auch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.650 Beiträge
 
Delphi 12 Athens
 
#5

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 16:51
ProviderFlags gibt es nicht in der Query sondern beim Feld. Du musst erst im Feld-Editor der Query (Kontext-Menü) über Felder hinzufügen das Nummer-Feld statisch anlegen. Dort kannst du die Provider-Flags setzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
HCB

Registriert seit: 12. Feb 2020
220 Beiträge
 
Delphi 12 Athens
 
#6

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 17:05
Uwe you made my day!
Ich danke Dir!!!!

AutoCreateMode auf acCombineAlways stellen und im Query FeldEditor ein Feld anlegen und dem Feld ProviderFlags/pfInKey auf true setzen.
Jetzt läuft das ganze problemlos.

Nochmals DANKE für die schnelle Hilfe.

LG Harry
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.650 Beiträge
 
Delphi 12 Athens
 
#7

AW: FDQuery CachedUpdates Datensatz speichern?

  Alt 15. Apr 2023, 17:13
Um das mal ein wenig zu erklären: FireDAC versucht bei einem Update möglichst eindeutige Key-Felder zu nehmen (upWhereKeyOnly). Ein Key-Feld zeichnet sich dadurch aus, dass es das ProviderFlag pfInKey hat. Die WHERE-Clause beim Update enthält also nur die Key-Felder.

Gibt es kein solches Feld, kommt als Fallback das upWhereAll zum Einsatz. Dabei listet die WHERE-Clause alle Felder auf und da streikt Access ab einer gewissen Anzahl.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz