Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Leitfaden für die Nutzung von FireDAC-Komponenten (https://www.delphipraxis.net/202579-leitfaden-fuer-die-nutzung-von-firedac-komponenten.html)

ioster 19. Nov 2019 14:07

Datenbank: MS SQL Server • Version: 2008 • Zugriff über: FireDAC

Leitfaden für die Nutzung von FireDAC-Komponenten
 
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

Uwe Raabe 19. Nov 2019 14:53

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

Alternativ auch in Papierform: Delphi in Depth: FireDAC

ioster 19. Nov 2019 15:11

AW: Leitfaden für die Nutzung von FireDAC-Komponenten
 
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

Uwe Raabe 19. Nov 2019 15:27

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

Zitat von ioster (Beitrag 1451573)
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?

ioster 19. Nov 2019 15:55

AW: Leitfaden für die Nutzung von FireDAC-Komponenten
 
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

hhcm 19. Nov 2019 16:00

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

Zitat von ioster (Beitrag 1451582)
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.

ioster 19. Nov 2019 16:05

AW: Leitfaden für die Nutzung von FireDAC-Komponenten
 
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

hhcm 19. Nov 2019 16:11

AW: Leitfaden für die Nutzung von FireDAC-Komponenten
 
Vielleicht query.CachedUpdates ?? Da hilft ein einfaches .Post nicht.

Frickler 20. Nov 2019 09:13

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

Zitat von hhcm (Beitrag 1451587)
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.

hoika 20. Nov 2019 10:53

AW: Leitfaden für die Nutzung von FireDAC-Komponenten
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:25 Uhr.
Seite 1 von 3  1 23      

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