@Robert_G
Zitat:
Das ist absolut falsch! Ich benutze auch unter .Net REF Cursor (eine Referenz auf einen Cursor, der auf dem Server geöffnet wurde).
OK, schon wieder falsch ausgedrückt
a) es geht hier um Probleme mit MS-
SQL-Server
die Version kann hier 6.5, 7.0 oder 2000 sein oder die
MSDE
b) als ich von .NET sprach meinte ich
ADO.Net
c) habe ich etwas falsches gelesen
im Buch A.Kosch Crashkurs .net für Delphianer Seite 275 Kapitel 6.3.3
"Keine serverseitige Cursor"
d) sicherlich kann ein Cursor serverbasierender sein, wenn dieser auf den
SQL-Server mittels in einer StoredProcedure ausgeführt wird
das hat aber nichts mehr mit
ADO zu tun
@Bernhard
Zitat:
Jedoch werden bei einem vernünftigen
DB-Grid und serverseitigen Curser nur soviel Daten zum Client übertragen, wie die Scrollposition im Grid ist.
beim clientseitigen Cursur wird alles auf einen Schlag im Arbeitsspeicher geladen
OK, das ist eine lange Wartezeit
Aber selbst wenn du nur 50000 Datensätze hast und 20Stück angezeigt werden sind das immer noch 2500x nachladen
Dieses nachladen dauert länger insgesamt (auf die 2500x gesehen) länger wie auf einmal
Zitat:
Nur beim Grid wenn dieser Curser-Komponation verwendet wird. Alles andere Geht sehr schnell
das ungewisse dabei ist dass wir Entwickler nicht wissen was der Anwender macht
Sicherlich mit einen Cursor mit dem man nur vorwärtsblättern kann geht alles schneller,
aber macht das auch der Anwender?, meistens will er wieder zurück scrollen um sich einfach zu
vergewissern
Zitat:
Manchmal ist es jedoch einfach über eine größer Datenmenge per Scrollbar drüberzuschauen als Tausend Where-Bedingungen auszuprobieren
aber wenn ich nun sehe dass etliche WHERE-Bedingungen berücksichtigt werden müssten, dann huscht doch
der Anwender ziemlich flux über die Datensätze und sucht nach Muster - und diese
lassen sich halt nur mit WHERE's beschreiben
Wenn der Anwender Zeit hat über 50000 Datensätze auf einmal zu gehen, dann hat er auch Zeit
sich vorher Gedanken zu machen, nach was er überhaupt sucht!
Meistens und leider sieht das der Anwender etwas anders
Zitat:
Bei
ADO wird mittles "exec sp_cursoropen ...
a) habe noch nicht ausprobiert und somit keine Erfahrung
b) in einer StoredProc "DECLARE cursor_name CURSOR GLOBAL" ... wichtig GLOBAL oder Doku mal anschauen DECLARE CURSOR
mit Hilfe einer zweiten StoredProc die Daten fetchten,
aber dann brauchst wahrscheinlich ein eigens dafür programmiertes Grid, welches das alles verwaltet
bin mir aber nicht sicher ob das wirklich funktioniert
Nochmals zu den SELECT * FROM Mat
a) braucht der Anwender alle * Felder
b) machmal ist ein ORDER BY eine grosse Hilfe für den Anwender
c) besteht der PrimaryKey aus einen oder aus mehrere Feldern
d) sicherlich hat die Tabelle noch SecundaryKey's, oder
e) klingt komisch, aber hast du es mal über einen View probiert
f) wird der Standard-Borland-DBGrid verwendet oder Third-Party
schon mal mit dem TBetterADODataSet
http://www.entwickler-forum.de/webx?...sD.1@.4a8702c3
probiert ?