![]() |
Datenbank: dbf • Version: x • Zugriff über: TTable, TDatasource
vergleichbaren SQL-Befehl für "Locate"
Hallo,
auf dem Gebiet "SQL" bin ich noch ein Newbie ... derzeitig arbeitet meine Kundendatenbank ohne SQL. Ich habe ein DBStringGrid mit der Möglichkeit eine Adresse zu finden. "Locate" finde ich dafür bestens geeignet. Hier wird im DBStringGrid zum jeweiligen passenden Datensatz gesprungen (ohne zu filtern).
Delphi-Quellcode:
Mir dem folgenden SQL-Befehl klappt es zwar auch, aber hier wird gefiltert und das entsprechende DBStringGrid "leer" sich entsprechend.
...
KundenQuery.Locate('KUNDE','Musterfirma',[loCaseInsensitive,loPartialKey]); ...
Delphi-Quellcode:
Bei einem Netzwerkzugriff habe ich bemerkt, dass mit "Locate" Performanceprobleme auftreten können, deswegen wollte ich den Weg über SQL, ähnlich dem "Locate", gehen (aber ohne diese "Filterfunktion) ... jedoch finde ich nicht wirkliches passendes dazu. :-(
...
SQLText:='SELECT * FROM Kunden WHERE LOWER(KUNDE) LIKE "Musterfirma%" ORDER BY KundenIDXName ASC'; KundenQuery.SQL.Text:=SQLBefehl; ... Gibt es überhaupt einen vergleichbaren SQL-Befehl für "Locate"? |
AW: vergleichbaren SQL-Befehl für "Locate"
Locate funktioniert auch mit SQL-Datenquellen. Es wird ja nur in der Ergebnismenge gescrollt was u.U. überhaupt keinen Zugriff auf den Server bedarf.
|
AW: vergleichbaren SQL-Befehl für "Locate"
Hi,
soweit ich es hier sehe, solltest du zwischen den Daten und ihrer Repräsentation unterscheiden. Mit Hilfe der SQL-Anfragen werden dir Daten zur Verfügung gestellt - die kannst du z. B. in einem Grid anzeigen. Wenn du innerhalb dieser Daten dann hin- und herspringen möchtest, ist das im Prinzip "nur" eine Visualisierungssache und hat mit den SQL-Anfragen nichts mehr zu tun. Viele Grüße, Frederic |
AW: vergleichbaren SQL-Befehl für "Locate"
Zitat:
Locate scrollt in vorhandenen eventuell gefilterten Daten zu dem gesuchten Datensatz, wobei dieser Positions-Zeiger (aktiver Datensatz) praktisch nur auf Clientseite existiert. :stupid: WHERE ist nunmal eher wie das ![]() |
AW: vergleichbaren SQL-Befehl für "Locate"
Zitat:
Falls er einen serverseitigen Cursor verwendet erfolgt auch bei jedem Datensatzwechsel ein Serverzugriff, was durchaus alles andere als performant sein kann. Jetzt wären durchaus Zusatzinformationen angebracht. Welche Datenbank / Version/ Zugriff über ? |
AW: vergleichbaren SQL-Befehl für "Locate"
Ich schrieb u.U. Und auch bei einem serverseitigen Cursor, wird nur gefetcht, wenn noch nicht auf dem Client vorhanden.
|
AW: vergleichbaren SQL-Befehl für "Locate"
Zitat:
Zitat:
|
AW: vergleichbaren SQL-Befehl für "Locate"
War doch nicht persönlich gemeint, und nur als kleine Ergänzung.
Ich habe gerade gesehen, dass er Dbase Files verwendet. Da ist das Cursorlocation Thema vermutlich ohnehin vom Tisch. clUseServer bewegt den Datensatzzeiger bei jeder Prior/Next/Locate Operation durch die serverseitige Datemnenge. Mit dem Fetch hängt das eigentlich nicht direkt zusammen. Serverseitige Cursur verwendet man z.B. um in Client Server Applicationen an jedem Client mitzubekommen, ob Datensätze durch andere User hinzugefügt oder gelöscht wurden. Aber, wie gesagt.... DBF. Das Thema ist kalter Kaffee. |
AW: vergleichbaren SQL-Befehl für "Locate"
Ja, Uwe. Habe es entdeckt. War nur nicht so schnell mit dem Tippen ... 8-)
|
AW: vergleichbaren SQL-Befehl für "Locate"
Danke für die ganzen Antworten ... wieder etwas gelernt.
Derzeitig habe ich
Delphi-Quellcode:
verwendet. Hier traten manchmal die Performanceprobleme auf, wenn gleichzeitig ein weiterer Benutzer auf die Datenbank zugriff.
...
DBKundenTable.Locate('KUNDE','Musterfirma',[loCaseInsensitive,loPartialKey]); ... Derzeitig teste ich es mit der "TQuery" - Komponente.
Delphi-Quellcode:
Kann man sagen, dass die Ausführung des "Locate"-Befehls mittels "TQuery" schneller ist, als über "TTable"?
...
KundenQuery.Locate('KUNDE','Musterfirma',[loCaseInsensitive,loPartialKey]); ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:36 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