![]() |
ListView vs. Grid in eine DB schreiben
Hallo zusammen,
ich brauche da mal eure Hilfe. Ich habe folgende Situation. Ich habe eine Tabelle mit 9 Spalten & 12 Zeilen. Diese Tabelle bleibt immer gleich groß. Diese soll nun in einer Datenbanktabelle abgebildet werden. Jetzt stellt sich mir die Frage, welche Komponente dazu am besten geeignet wäre eine ListView oder ein Grid. Als weitere Voraussetzung soll noch gegeben sein, dass wenn sich ein oder mehrere Werte in der Tabelle ändern, sollen diese ohne großen Aufwand (Schleifen oder ähnliches) in die Datenbanktabelle ebenfalls mit übernommen werden. Welche Kompo haltet Ihr für die bessere Wahl ? Zusätzlich sei noch gesagt, dass die Tabelle nochmals in einer Klasse abgebildet ist. Nur weiß ich im Moment nicht, ob das von Vorteil oder Nachteil ist. |
Re: ListView vs. Grid in eine DB schreiben
Ich würde andersrum vorgehen, alle Manipulationen direkt am DataSet durchführen und das Grid/ListView o.ä. zur reinen Visualisierung nutzen
|
Re: ListView vs. Grid in eine DB schreiben
Hallo Markus,
das wäre eine Idee, aber wie reagiere ich auf die geänderten Werte. Die können einmal durch Berechnungen geändert werden oder manuell in der Kompo ? |
Re: ListView vs. Grid in eine DB schreiben
In der Kompo kannst du ja eigene Editoren implementieren, die dann die notwendigen Updates durchführen
|
Re: ListView vs. Grid in eine DB schreiben
Mmh, ok. Ich werde da mal etwas versuchen. Danke für den Denkanstoss.
|
Re: ListView vs. Grid in eine DB schreiben
Zitat:
:hi: |
Re: ListView vs. Grid in eine DB schreiben
Hallo haentschman,
ich benutze keinerlei DB-Komponenten. Ich mache lediglich alles über Query's und ganz normale Komponenten. Meine Daten werden von der Datenbank in die Klassen geschrieben. Diese regeln, rechnen und schreiben dann die Werte in die dazugehörigen Komponenten. So ist das auch für diese Tabelle. Ich werde mir jetzt einen Weg überlegen, die Werte in der Klasse entsprechend zu ändern und dann die Änderungen in die ListView zu übernehmen. |
Re: ListView vs. Grid in eine DB schreiben
Hallo,
Zitat:
die direkt in Klassen schreiben kann ... Zitat:
Entweder du nimmst MVC (Model-View-Controller) oder Publish/Subscribe. Infos dazu gibt es im Netz genug. Nur kurz: MVC - Trennung von Anzeige / Daten / Datenbearbeitung Pu/Su - Message-System für Info-Austausch (z.B., dass die Daten geändert worden sind -> Neuanzeigen) Heiko |
Re: ListView vs. Grid in eine DB schreiben
Zitat:
|
Re: ListView vs. Grid in eine DB schreiben
Hallo,
dann hast du vom MVC pratischerweise schon die Daten (Modell). Hier ist es doch am einfachsten, eine View-Klasse zu definieren, der einzige Aufgabe es ist, das Grid/ListView nach einer Änderung zu aktualisieren. Die View-Klasse wird durch deine Datenklasse informatiert (Methoden-Aufruf), dass sich was geändert hat. Heiko |
Re: ListView vs. Grid in eine DB schreiben
Ich stelle mir dabei nur die Frage, behandel ich jede Zelle einzeln oder arbeite ich mit Array's ? Ich halte Array's für sinnvoller, nur leider habe ich bis jetzt noch keine Möglichkeit diese an eine SP in Firebird zu übergeben.
|
Re: ListView vs. Grid in eine DB schreiben
Hallo,
wie behandeln ? In der "DB"-Klasse, oder beim Update. Das kommt darauf an, wie du das dem User hingeben willst. Soll jede Änderung sofort geschrieben werden, oder gibt es einen OK-Button. Im Fall 1 schreibr deine Klasse die Änderungen in die DB und "sagt" der View-Klasse, sie soll die Anzeige aktualisieren. In Fall 2 "merkt" sich die DB-Klasse, dass sich der Datensatz geändert hat und schreibt die Änderung erst beim OK. Zum Merken würde ich keine Arrays nehmen,
Delphi-Quellcode:
Das kommt dann in eine TList.
TMyDate=class(TObject)
Row // -> DBId (Record) Col // -> Field im Record NewValue end; Hintergrund: einfache Erweiterbarkeit um "Cols" / "Rows" Heiko |
Re: ListView vs. Grid in eine DB schreiben
Hallo Heiko,
mit behaneln meinte ich, ob ich jede Zelle der Tabelle einzeln anfasse oder zum Beispiel die Spalten in Array's zusammenfasse. |
Re: ListView vs. Grid in eine DB schreiben
Hallo,
kommt drauf an, was du willst. array[1..12] of XXX oder TList Musst du entscheiden. Denke aber daran, dass sich dioe Spalten-Reihenfolge auch ändern könnte, also kein Data[1,Grid.Row] somdmerm Data[iColName,Grid.Row] iColName: Integer Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:54 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