Einzelnen Beitrag anzeigen

Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#8

Re: ADO (MS-SQL) + clUseServer + DBGrid-Anbindung

  Alt 10. Jul 2004, 14:51
@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 ?
  Mit Zitat antworten Zitat