Announcement

Collapse
No announcement yet.

C/S Design nach A. Kosch

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • C/S Design nach A. Kosch

    Hallo!<BR><BR>
    In A. Koschs Buch "Interbase & Delphi" habe ich gleich am Anfang gelesen, dass sich ein C/S Design von einer Desktop-DB dahingehend unterscheidet, dass man nicht unbedingt eine (Detail-)Table verwenden sollte, um Daten anzuzeigen, da hierzu eine komplette Kopie der Daten benötigt wird. Besser sei es, nur eine kleine Übersichtsauswahl abzufragen und dann gezielt den gesamten Datensatz im Datail anzuzeigen. So weit, so gut. <BR><BR>

    Ich habe aber in einer DB (nur) eine Tabelle mit sehr, sehr vielen Datensätzen (Ereignisseinträge/Alarmmeldungen, die über's Netz hinzugefügt werden), welche in einer Liste angezeigt werden sollen, möglichst "live" und mit der Möglichkeit der Änderung von Zellen (z.B. Quittierung von Alarmen).<BR><BR>

    Frage: Wie wird das sinnvoll gelöst? Kann man z.B. den sichtbaren (Scroll-)Bereich irgendwie "nachladen"? D.H. kann man irgendwie nur so viel Datensätze abholen, wie gerade angezeigt werden können?<BR><BR>

    Bin als C/S-DB Neuling dankbar für jegliche Tips!
    <BR><BR><BR>

  • #2
    Hallo,

    das Clientprogramm erhält mit der Ergebnismenge einer SELECT-Abfrage vom SQL Server (InterBase) immer nur eine "Kopie" der Daten, wobei die eigene Transaktion festlegt, welche Daten sichtbar sind.

    &gt;..möglichst "live"..

    Wenn die von anderen Anwender hinzugefügten/geänderten Datensätze im Client sichtbar sein sollen, muss dieser die Ergebnismenge ("Kopie") über eine neu ausgeführte SELECT-Abfrage erneut anfordern. Je kleiner dabei die Ergebnismenge ist, umso besser.

    &gt;..mit sehr, sehr vielen Datensätzen ..

    Kein Anwender kann <b>gleichzeitig</b> tausende Datensätze visuell verarbeiten, so dass es Verschwendung ist, wenn der Client alle Datensätze der Tabelle anfordert.

    Statt dessen muss man Suchwege vorsehen, über eine WHERE-Einschränkung der SELECT-Abfrage die Ergebnismenge kompakt halten:<br>
    a) Suche nur nach den aktuellsten Vorgängen, um die Änderungen anderer Anwender zu erhalten<br>
    b) Suche nach dem (einzelnen) Datensatz, der geändert werden soll <br>
    c) Begrenzung der Ergebnismenge auf eine bestimmte Datensatzanzahl (siehe Seite 236ff in meinem InterBase-Buch

    Comment


    • #3
      Hallo,
      Mein Lösungsweg war, zu bestimmten Zeiten (Täglich,wöchentlich...) eine neue Tabelle zu creieren und die Ereignisse dann dorthinein zu lenken. dadurch bleibt die Menge der Einträge pro tabelle gleich/begrenzt und mein select ist schnell
      Kurt

      Comment

      Working...
      X