AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

DBGrid SelectedRows

Ein Thema von -187- · begonnen am 26. Feb 2011 · letzter Beitrag vom 28. Feb 2011
Antwort Antwort
Seite 2 von 2     12
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#11

AW: DBGrid SelectedRows

  Alt 27. Feb 2011, 12:18
Also den IN-Operator auf diese Weise zu verwenden ist imho keine so gute Idee. Das funktioniert zwar, aber zeigt doch, das deine Anwendung hier keine sinnvolle Operation bietet:

Du lässt Dir z.B. 1.600 Datensätze anzeigen und dann möchtest Du, das ... ein bestimmtes UPDATE auf alle oder einige wenige Datensätze ausgeführt wird?

Gut. Dann mach das doch auch so: Führe einen Button ein "Auf Alle anwenden". Dahinter verbirgt sich dann ein "UPDATE tabelle SET Feld=NeuerWert". Das geht richtig flott und wäre bezüglich Usability der richtige Weg.

Wer einzelne Datensätze auswählen will, kann das mit Bummi's Methode gerne tun. Wer mehr als 1500 Datensätze auswählt, bekommt eine Warnung, das das zu viele seien, oder Du machst das in Paketen à 1500 Records.

Oder (so mach ich das): Ich habe bei solchen GUI-Metaphern (Liste anzeigen, auswählen) immer zwei Buttons: "Alle Auswählen" und "Auswahl entfernen". Wenn alle Datensätze ausgewählt sind, führe das UPDATE ohne IN aus, ansonsten eben mit.

Ich würde aber grundsätzlich meinen, das die Anzeige von so vielen Datensätzen und die Möglichkeit, aus all diesen Datensätzen etwas auszuwählen, bezüglich der Benutzerfreundlichkeit etwas problematisch ist.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#12

AW: DBGrid SelectedRows

  Alt 27. Feb 2011, 16:38
Naja eine Warnung wie "Zuviele Datensätze ausgewählt" kommt mal garnicht in Frage Ich habs ja in Pakete á 1500 aufgeteilt. Die Idee mit dem zweiten Button habe ich bereits umgesetzt.

Scheinbar gibt es keine sinvollere Lösung für mein Problem.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.965 Beiträge
 
Delphi 2010 Enterprise
 
#13

AW: DBGrid SelectedRows

  Alt 27. Feb 2011, 17:09
Ich zweifel ja, ob Anwender oder Anwendung einen großen Nutzen bei dieser Funktion haben/bieten. Wer bitte findet sich denn damit zurecht, in 1000en Datensätzen mit Multiselect die richtigen Daten zu finden, auszuwählen, nicht daneben zu klicken und immer schön die [STRNG] Taste festzuhalten?
Aber das war ja nicht die Frage..

2 Vorschläge:
1. Falls es irgendeine Systematik bei der Auswahl der 1000 Datensätze gibt, die sich durch einen Filter ausdrücken lässt, soetwas nutzen und den Filter einer Stored Proc übergeben, die das gefilterte Update durchführt.
(Das würde m.E. vlt auch die Übersichtlichkeit / Transparenz für den Anwender erhöhen, erst Recht, wenn er (Filter-/Selektions-)Gruppen bilden muss, weil es nicht auf einen Schlag geht.)

oder
2. Die Maske so ändern, dass (De-)Selektion satzweise an eine temporäre Tabelle des Users geschickt wird. Die hinzugefügten Sätze könnten evtl sogar in einem 2. Grid angezeigt werden (Dann könnte man, müsste aber nicht, auf die Nutzung/Anzeige der Selected Items verzichten).
Das lässt sich auch mit den genannten Buttons wie Alles Auswählen, Auswahl invertieren , .. kombinieren.
Zum Update wieder eine Prozedur, die auf Basis der temporären Tabelle arbeitet.
Falls es keine user spezifischen, temporären Tabellen gibt in FB, dann halt eine normale mit den Spalten "ID" (Datensatz) und Session- oder USer-id.
Gruß, Jo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.008 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: DBGrid SelectedRows

  Alt 28. Feb 2011, 15:19
Hallo,

führe deine Schleife in einer Transaktion aus.

Falls es ich um das Update immer der gleichen Tabelle handelt
-> prepared Query


Heiko
Heiko
  Mit Zitat antworten Zitat
-187-

Registriert seit: 24. Sep 2005
483 Beiträge
 
Delphi 2010 Architect
 
#15

AW: DBGrid SelectedRows

  Alt 28. Feb 2011, 15:31
Hmm kannst du das genauer erklären ? Die Tansaktion rufe ich ja erst nach der Schleife mit .Commit auf.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 04:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf