AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Denkanstoß MemTable/Cachetable FireDac
Thema durchsuchen
Ansicht
Themen-Optionen

Denkanstoß MemTable/Cachetable FireDac

Ein Thema von Eppos · begonnen am 1. Okt 2020 · letzter Beitrag vom 2. Okt 2020
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.562 Beiträge
 
Delphi 7 Professional
 
#5

AW: Denkanstoß MemTable/Cachetable FireDac

  Alt 1. Okt 2020, 18:35
Hallo zusammen,

ich brauche mal einen Denkanstoß.
Ich habe eine Tabelle in der ich variable Zeiträume speicher (Datum von/Bis) und auf die ich mehrmals im System darauf Zugreife um die jeweilige ID des Zeitraumes zu ermitteln. Hier bei bin ich auf die Idee gekommen, bei Systemstart eine FDQuery abzusetzen und diesen im Speicher offen zu lassen, bis ich entweder Refreshe oder das System beende.
Ich Frage mich, ob mehrere Verbindungen zur Datenbank offen zu halten, eine sinnvolle Option ist oder ob dafür eine andere Möglichkeit gibt.
Wie gestaltet es sich, wenn ein anderer User neue Einträge hinzufügt, wie bekommt der Client diese Aktualisierung mit?

Vielen Dank

Eppos
Über eine Verbindung kann man dutzende von Tabellen und / oder Querys öffnen und mit ihnen arbeiten. Die Frage nach mehreren offenen Verbindungen stellt sich daher nicht. Und selbst wenn: Natürlich kann man mehrere offenen Verbindungen in 'nem Programm haben, egal ob die alle zur gleichen Datenbank gehen oder zu verschiedenen Datenbanken, auch unterschiedlichster Datenbanktypen auf einem oder mehreren Servern.

Die Frage die sich für mich stellt ist: Du willst eine ID haben. Ist die immer gleich oder ändert die sich mit jedem Neuerstellen der Abfrage?

Ist die Ergebnismenge der Abfrage immer gleich, dann leg dir 'ne entsprechende Tabelle in der Datenbank an und greife darauf zu, anstatt bei jedem Programmstart immerwieder die gleiche Ergebnismenge zur Verarbeitung zu erstellen und für die Programmlaufzeit vorzuhalten.

Und 'ne Query kann man beim Porgrammstart öffnen und bis zum Programmende geöffnet halten. Wenn die Menge der Daten nicht exorbitant hoch ist, also in den Arbeitsspeicher passt (ohne andere Programm negativ zu beeinflussen) dann hast Du damit letztlich eh schon 'ne Memorytable, mit entsprechend kurzen Zugriffzeiten. Zumindest klappt das bei mir mit meinem ollen Delphi 7 und Firebird 3 hervorragend. Gezielte Abfragen per SQL auf konkrete Daten (was bei dem Suchen einer ID für ein Zeitinterval ja wohl gegeben sein dürfte) gehen so schnell, dass man das eigentlich nicht merkt.
  Mit Zitat antworten Zitat
 


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 10:26 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