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.