AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Daten aus Datenbank in Speicher halten?!
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus Datenbank in Speicher halten?!

Ein Thema von hans ditter · begonnen am 3. Jan 2012 · letzter Beitrag vom 12. Jan 2012
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#21

AW: Daten aus Datenbank in Speicher halten?!

  Alt 9. Jan 2012, 00:21
Wir müssen (bzw. wollen) bis zu 5000 Aufträge im Speicher halten, weil die Disponenten beim Anruf eines Kunden schnell die richtigen Aufträge finden müssen. Eine Query dauert dann leider doch etwas, weil auch Großkunden mit mehreren Hundert Aufträgen dabei sind. Und pro Auftrag sind es 300-400 Details, die mit geladen werden, also schon einiges an Daten.
Das Finden und Filtern der Aufträge sowie das Einpflegen der Änderungen sollte ja möglichst bereits in der Datenbank geschehen. Durch das Bearbeiten im Client gibt es ja einige Probleme:
  • Zumindest die Übertragung großer Datenmengen.
  • Redundanz (Clientdaten <-> Serverdaten), dadurch vielleicht unterschiedliche Version bei verschiedenen Nutzern.
  • Keine Transaktionen.
  • Geänderte Daten sind nicht crashsave in der Datenbank, sondern liegen beim Client im Speicher.

Andererseits könnte man das Ganze als Caching* bezeichnen, was ja nötig sein kann, wenn der Rechner schlecht an das Datenbanksystem angebunden ist.
Aber bei einer lokalen Datenbank sollte es in den meisten Fällen Schwachsinn sein.

* Obwohl ich 5000+ Datensatze irgendwie schon ziemlich extrem finde.


Achtung:
Das ist die Sicht, die ich aktuell nach dem Genuss einer (einzigen) Datenbankvorlesung habe.
Ich will nicht behaupten, dass du bei deinem konkreten Anwendungsfall etwas falsch machst.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#22

AW: Daten aus Datenbank in Speicher halten?!

  Alt 9. Jan 2012, 08:27
Alle diese Probleme sind gelöst, durch Recordlocking, transaktionssicheres Ändern etc.

Die 5000 Datensätze quasi live zu zeigen waren auch wirklich ein ganz schönes Problem, vor allen Dingen das clientseitige Sperren in der GUI.

In einer lokalen DB kann es auch nötig sein, eine in-Memory Kopie der Daten zu haben. So eine lokale DB benötigt ja auch einiges an Zeit, leider.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#23

AW: Daten aus Datenbank in Speicher halten?!

  Alt 9. Jan 2012, 17:43
Ich hab grad so in den letzten Beiträgen rausgehört, dass mein Vorhaben Irsinn ist. Aber dann würde ich euch gerne mal fragen, wie man das dann am Besten löst. Es ging mir vor allem darum, dass man durch die Datensätze navigieren kann.
Mein erster Ansatz war dann ja, dass ich einfach für den nächsten bzw. vorigen Datensatz eine neue Abfrage starte.
Der zweite Ansatz war dann jetzt, die Daten aus der DB in den Speicher zu ziehen (z.B. mit Klasse und ObjectList) um einfach navigieren zu können, ohne die DB bei jedem Vor/Zurück anzusprechen.

Ist das nicht der richtige Ansatz? Denn letztlich muss doch ein StringGrid o.ä. die angezeigten Daten auch im Speicher halten...
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#24

AW: Daten aus Datenbank in Speicher halten?!

  Alt 12. Jan 2012, 12:43
Ich unterstelle jetzt einfach mal keine jahrelang CodingXperience. In diesem Fall würde ich dringend auf die datensensitiven Controls von Delphi verweisen. Einfacher kann man eine derartige Applikation nicht entwerfen.

Auch hier werden je nach Implementation die Daten im Speicher gehalten (TDataset-Nachfahre), allerdings sind das erprobte Komponenten. Die TObjectList-Lösung ist imho schon um einiges aufwendiger zu programmieren.
  Mit Zitat antworten Zitat
hans ditter

Registriert seit: 25. Jun 2010
Ort: Niedersachsen
263 Beiträge
 
Turbo Delphi für Win32
 
#25

AW: Daten aus Datenbank in Speicher halten?!

  Alt 12. Jan 2012, 15:50
@Nachti: Einfacher ist es in jedem Fall... aber darum geht es ja gerade: ich will lernen, also nehm ich nicht immer den einfachsten Weg.
Ich hab diesen Thread nicht aufgemacht um möglichst schnell mein Programm fertig zu bekommen, sondern um bessere Alternativen kennenzulernen und sie umzusetzten.

Zu dem zweiten Teil deines Posts: werden die Daten nur bei bestimmten Datensensitiven Komponenten im Speicher gehalten? Ich frage, weil du schriebst "TDataset-Nachfahren" und "je nach Implementation".

LG; hans ditter
RudiRüsselSeineSocketKomponente - SirRufo (--> Chat mit PM)

Delphi Programming is the best one!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 07:42 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