AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Leitfaden für die Nutzung von FireDAC-Komponenten

Leitfaden für die Nutzung von FireDAC-Komponenten

Ein Thema von ioster · begonnen am 19. Nov 2019 · letzter Beitrag vom 21. Nov 2019
Antwort Antwort
Seite 1 von 3  1 23   
ioster

Registriert seit: 15. Aug 2008
34 Beiträge
 
Delphi 10.3 Rio
 
#1

Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 15:07
Datenbank: MS SQL Server • Version: 2008 • Zugriff über: FireDAC
Hallo zusammen,

ich bin immer noch auf der Suche nach einer vernünftigen Dokumentation der FireDAC-Komponenten. Ich nutze Delphi 10.3 Update 2 in Verbindung mit MS SQL Server und vor allem DevExpress-Komponenten.

Seit einem guten halben Jahr versuche ich, eine brauchbare Anwendung zu schreiben. Vom Advantage Database Server als Datenbank habe ich mich mittlerweile verabschiedet, weil die Komponenten meiner Version offenbar nicht so einwandfrei mit der neuesten Delphi-Version harmonierten.

Nun hatte ich einige Ungereimtheiten auf diese Inkompatibilität geschoben, doch ich komme auch mit dem MS SQL Server nicht wirklich weiter.

Das Grundproblem sehe ich bei den FireDAC-Komponenten, die eine Vielzahl von Einstellungsmöglichkeiten haben, deren Abhängigkeiten untereinander und die genauen Einflüsse auf das Verhalten der Datenbank nur begrenzt dokumentiert sind.

Beim Support vom Embarcadero habe ich inzwischen mehrfach nach einem Leitfaden gefragt, aber man verweist nur auf Samples und die Documentation. Wie sollen einem die weiterhelfen, wenn die Beispiele nicht den Praxisfall treffen.

Gibt es irgendwo etwas Vernünftiges möglichst auf Deutsch, das einem die Verfahrensweise der FireDAC-Komponenten erklärt und auf mögliche Risiken und Bugs hinweist? Dabei möchte ich noch einwerfen, dass ich mit den klassischen Methoden von Tables für die Bearbeitung von einzelnen Datensätzen arbeite. Queries setze ich vor allem für die Darstellung der Datensuche und der Auswertung ein.

Danke im Voraus.
Ingo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.183 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 15:53
Delphi in Depth: FireDAC

Alternativ auch in Papierform: Delphi in Depth: FireDAC
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
34 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 16:11
Danke für den Tipp. Das Buch habe ich mir als eBook-Version schon vorab gekauft und heruntergeladen. Bei meinen Problemen hilft es mir allerdings auch nicht wirklich weiter. Dort sind die Eigenschaften einer Connection aufgelistet und mit einfachen Beispielen geht es auch um Datenänderungen in Grids - die simplen Methoden wie Append, Edit und Post für eine Table sucht man jedoch vergeblich.

Gruß
Ingo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
7.183 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 16:27
die simplen Methoden wie Append, Edit und Post für eine Table sucht man jedoch vergeblich.
Die sind doch für alle TDataSet-Abkömmlinge identisch. Wo liegt denn genau dein Problem?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
34 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 16:55
Das genaue Problem liegt beim Speichern und Aktualisieren der Daten. Ich kenne es so, dass mit einem Post die Daten in der Datenbank stehen. Wenn ich in meiner Anwendung Daten erfasse, dann sieht alles gut aus. Schaue ich nach dem Post in die Datenbank, dann fehlen aber die Feldinhalte.

Editiere ich eine Parametertabelle in meiner Anwendung über ein Grid und kehre in einen Stammdatendialog zurück, dann sind diese optionalen Werte nicht aktuell. Neue Einträge fehlen, geänderte Einträge sind noch so wie vorher. Nach einem Neustart der Anwendung stehen mir die Parameter so wie gewünscht zur Verfügung.

Ein weiteres Problem ist der Abruf der Daten. Ich habe letzt nach einigem Hin und Her den FireDAC-Monitor aktiviert. Mit dem Öffnen eines Stammdatendialogs setze ich die Table auf Active := true. Die Datenbank holt daraufhin alle Datensätze aus der Tabelle, was bei einem umfangreichen Adress- oder Artikelstamm sehr viel sein kann. Mit Änderung der RecsMax in den FetchOptions kam aber nichts Brauchbares mehr dabei heraus.

Insofern sehe ich den Ansatz bei den generellen Einstellungen der FDConnection. In dem Buch von Cary Jensen ist so ein Fall aus der Praxis nicht beschrieben. Die Beispiele zielen alle auf eine Bearbeitung per Grid ab und lassen solche Anwendungsprobleme wie ich sie habe außen vor.

Gruß
Ingo
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
132 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 17:00
Editiere ich eine Parametertabelle in meiner Anwendung über ein Grid und kehre in einen Stammdatendialog zurück, dann sind diese optionalen Werte nicht aktuell. Neue Einträge fehlen, geänderte Einträge sind noch so wie vorher. Nach einem Neustart der Anwendung stehen mir die Parameter so wie gewünscht zur Verfügung.
Zurückkehren in ein geöffnetes Dataset? Wie wäre es mit einem Refresh? Oder Schließen und erneutes öffnen? Das ist kein Problem von FireDAC, das ist bei jedem DataSet gleich.
Chris
  Mit Zitat antworten Zitat
ioster

Registriert seit: 15. Aug 2008
34 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 17:05
Wenn ich im Formclose die Datenquelle wieder schließe und beim erneuten Öffnen des Dialogs wieder aktiviere, dann sollte das mit einem Refresh gleichzusetzen sein. Das Programm greift nur eben nicht auf die aktualisierte Datenbank zu, sondern auf das, was beim ersten Mal geladen wurde. Und das ist ein wesentlicher Punkt, den ich nicht verstehe und der in der Anwendungsentwicklung fatal ist.

Gruß
Ingo
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
132 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 19. Nov 2019, 17:11
Vielleicht query.CachedUpdates ?? Da hilft ein einfaches .Post nicht.
Chris
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
236 Beiträge
 
Delphi XE6 Enterprise
 
#9

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 20. Nov 2019, 10:13
Vielleicht query.CachedUpdates ?? Da hilft ein einfaches .Post nicht.
Da muss dann nach dem .Post noch .ApplyUpdates kommen.

Es kommt drauf an, was FireDAC im Hintergrund mit Transaktionen anstellt. Wenn erstmal alle Insert/Update/Delete nur gesammelt und erst beim Schließen der Table committet werden, dann sieht man Änderungen nie sofort.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.377 Beiträge
 
Delphi XE4 Professional
 
#10

AW: Leitfaden für die Nutzung von FireDAC-Komponenten

  Alt 20. Nov 2019, 11:53
Hallo,
Zitat:
Das Programm greift nur eben nicht auf die aktualisierte Datenbank zu, sondern auf das, was beim ersten Mal geladen wurde.
Du redest jetzt von Mehrbenutzer-Modus (mehrere Rechner) oder ist es das gleiche Programm?
d.h. Fall1
- Programm.Exe wird gestartet
- macht eine Connection auf
- öffnet ein Formular, speichert dort die Daten ab, schließt das Formular
- öffnet ein anderes Formular und dort sind die Daten nicht zu sehen?

oder ist das Fall2
Rechner 1
- Programm.Exe wird gestartet
- macht eine Connection auf
Rechner 2
- Programm.Exe wird gestartet
- macht eine Connection auf

Rechner 1
- öffnet ein Formular, speichert dort die Daten ab, schließt das Formular
Rechner 2
- öffnet ein anderes Formular und dort sind die Daten nicht zu sehen?
- Programm.Exe wird gestartet
- macht eine Connection auf
Heiko

Geändert von hoika (20. Nov 2019 um 11:57 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 13:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf