Einzelnen Beitrag anzeigen

Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#7

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

  Alt 9. Jul 2004, 10:26
Zitat von trifid:
a) Du hast aber SELECT * FROM <MeineTabelle>
b) und für eine Bindung an ein DB-Grid geeignet
geschrieben
jetzt doch nicht
Doch schon. Jedoch werden bei einem vernünftigen DB-Grid und serverseitigen Curser nur soviel Daten zum Client übertragen, wie die Scrollposition im Grid ist.
Zitat von trifid:
weil die BDE ein anderes Design hat wie OLE-DB und ADO
Ich möchte nicht mehr mit der BDE auf meinen SQL-Server zugreifen. Da ist mir ADO mit all seinen Bugs lieber.
Wir haben auch die BDE aus unserem Produkt (fast) eliminiert. Jedoch ist es für mich nicht einsichtig, wieso M$ hier nicht auch diesen Fall vorgesehen hat.
Zitat von trifidaber:
dennoch Wartezeiten ?
Nur beim Grid wenn dieser Curser-Komponation verwendet wird. Alles andere Geht sehr schnell
Zitat von trifidaber:
hast du dir mal Gedanken gemacht wie lange ein Anwender braucht um 50000 Datensätze anzuschauen?
Manchmal ist es jedoch einfach über eine größer Datenmenge per Scrollbar drüberzuschauen als Tausend Where-Bedingungen auszuprobieren.
Zitat von trifidaber:
b) es gibt sicherlich Strategien wo ein serverseitiger Cursor einen clientseitigen vorzuziehen
ist, aber wegen deiner Selektion/Mehrfachselektion würde ich mir ein anderes
"Filter"-Konzept überlegen.
c) den ADS mit einen klassischen SQL-Server vergleichen, ist bei der Menge an Daten vielleicht
realisierbar aber fragwürdig
zu a, Da bin ich mittlerweile auch angekommen. Ich versuch mal einem normales Grid + Forward-Curser + eigenes Caching-Mechanismus zu einem vernünftigen Ergebniss zu kommen.
Zitat von shmia:
Ohne Primary Key auf jeder Tabelle geht gar nichts.
Goldene Regel für alle Datenbanken: nur Tabellen mit Primary Key können problemlos in einem DBGrid angezeigt werden.
Die Tabelle hat Primärschlüssel. Das Problem liegt an ADO.
Bei der BDE/ODBC-Kombination wird einfach ein "select * from MyTable" abgeschickt und über fetching werden nur die benötigten Daten abgerufen.
Bei ADO wird mittles "exec sp_cursoropen @P1 output, N'select * from mat', @P2 output, @P3 output, @P4 output ..." ein Curser auf Server-Seite angelegt. Und wenn die Tabelle sehr groß ist, dauert das.
Mir wäre ja geholfen, wenn ich ADO dahingehend bekomme, das Bookmarks (für Grid nötig) unterstützt werden, die Daten wenn möglich auf den Server bleiben und nicht per "exec sp_curseropen..." gearbeitet wird, sondern wie bei BDE/ODBC nur einfach die Query abgeschickt würde.
  Mit Zitat antworten Zitat