![]() |
Datenbank: oracle • Version: egal • Zugriff über: ADO
CLuseServer oder clUseClient oder..
Hallo Zusammen,
durch Zufall bin ich auf ein seltsames Verhalten gestoßen. in einer meiner Datenbanken git es eine Tabelle "Name" mit dem Feld "name". Nicht geschickt, aber es ist so. Mit allen möglichen Abfrageprogrammen liefert
SQL-Code:
ein Ergebnis.
select name from name where name like 'M%'
Nun habe ich mir ein kleine Oberfläche zusammengeklickt (TADOConnection+TADOQuery+Stringgrid) die bei obiger Abfrage eine Fehlermeldung ähnlich "empty Rowset" liefert. In anderen Programmen nachgeschaut die diese Fehlermeldung nicht liefern,
Delphi-Quellcode:
hat
ADOConnection
Delphi-Quellcode:
und
clUseServer
Delphi-Quellcode:
ADOQuery
Delphi-Quellcode:
in der
clUseClient
Delphi-Quellcode:
stehen.
.Cursorlocation
Irritierend, aber wenn's klappt. Ausprobiert, der Fehler ist weg, wunderbar. Also zurück geändert um die genaue Fehlermeldung zu reproduzieren. Kein Fehler! :stupid: Wenn man die ganzen Voodoo-Tips ignoriert, dann gibt es für Access die Empfehlung clUseServer zu verwenden, in allen anderen Fällen clUseClient. Doch auf das "wo stellt man's ein" wird nicht eingegangen. Darum meine Frage an Euch "Wo stellt man's ein und warum?" Gruß K-H |
AW: CLuseServer oder clUseClient oder..
Müsste der bein TQuery-Instanzen sein.
Und Gründe wieso: clUseServer bei Access da hier eh die Access-Engine in den eigenen Adressraum geladen wird und alles sich dort abspielt. Dann sorgt ein clUseClient nur für unnötiges (und speicherfressendes) sofortiges Kopieren aller Datensätze von der Jet-Engine-Seite auf die "andere Seite" der ADO-Schnittstelle. Bei allen richtigen DB-Servern sorgt clUseServer zu unnötigen offenhalten des ResultSet auf Serverseite. Dort sorgt man am besten (wenn man eh keine DB-Sensitiven Controls) dafür das möglichst schnell das Resultset geschlossen wird um den Server zu entlasten (der ja u.U. 1000 gleichzeitige Anfragen bearbeiten muss) |
AW: CLuseServer oder clUseClient oder..
Danke!
Bleibt nur noch die Frage warum ADO sich da zunächst eingemischt hat und wußte, das bei der Abfrage nichts heraus kommt. Ich vergaß
Delphi-Quellcode:
hat natürlich funktioniert.
select Name.name from Name...
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz