![]() |
Delphi-Version: 7
Auf einen Datensatz in einem Resultset positionieren (Locate)
Hallo,
ich nutze Delphi, der Datenzugriff geht über SQLDircet auf eine MS SQLServer. Ich nutze schon eine Weile TSDQuery.Locate, aber es ist mir jetzt klar geworden, dass die Suchkriterien im VarArray-Parameter nicht um den Typ scheren. Ich suche in einer Adress-Tabelle z.B. über Name, dazu nutze ich eine Select-Anweisung. Aus der Treffermenge kann der Anwender einen Datensatz anklicken auf den ich dann mit Locate in meine Haupt-Resultset (eigentliche alle der Tabelle) um auf den gesuchten DS zu positionieren. Hier verwende ich natürlich den PI eine ID vom Typ Integer. Aber da die Datenmenge für die Anwender sinnvollerweise nach Name sortiert ist, steht z.B. die ID 749 vor der ID 74 und Locate scheint das Integer-Feld wie ein Char-Feld zu behandeln und gibt mir schon bei entspr. 749 als Treffer zurück. Kann ich Locate irgendwie sagen, das ich da in einem Integer-Feld suche und 749 nicht gleich 74 ist? Oder gibt es eine andere Methode innerhalb eines Resultset auf einen Datensatz zu positionieren? Früher bei TTable habe ich FindKey benutzt, aber inzwischen ist alles TQuery bzw. TSDQuery. Vielen Dank für eure Hilfe im Voraus. Micha |
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
das hört sich eher nach der Option loPartialKey an.
|
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Zitat:
Allerdings: wenn dein "voller" Dataset über eine Query mit einer order by Klausel über die PI erzeugt wurde könnte das Locate sogar funktionieren. |
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Hallo,
also ich habe das mehrfach durchgelesen und trotzdem nicht verstanden ... Zitat:
Char2="749" Char1="74" Where Char="74" darf doch auch hier nicht "749" zurückliefern ... Ich würde mir mal ein paar Optionen des Locate ansehen und 1. "Filter" benutzen 2. direkte Queries nehmen, also wieder Abfragen zum SQL-Server schicken 3. Umsteigen auf TClientDataSet Punkt 1 und 3 ergaben sich nach Goggle-Suche "TQuery Locate Error" |
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Moin...8-)
Zitat:
|
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Hallo,
Zitat:
IdR wird bei jeder neuen Query auch eine Transaktion gestartet und dein Ärger war weg ;) |
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Moin...8-)
Zitat:
|
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Zitat:
Zitat:
Zitat:
|
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Moin...8-)
Zitat:
Zitat:
|
AW: Auf einen Datensatz in einem Resultset positionieren (Locate)
Zitat:
Auch das editieren von Datasets mit edit/append/insert/post halte ich für übel. Ich verstehe auch nach wie vor nicht, warum es Firedac u.ä.aufwendige Data Access Frameworks gibt. Das, was man wirklich brauchen könnte (ORM) leistet es nicht. Und der Rest wie das editieren von Datasets, "Live"-Querys, cached updates u. ä. sind übel. Eine leichtgewichtige direkte Verbindung zur Datenbank ist alles was man braucht: insert, update, delete. Und ein unidirektionaler Cursor auf eine Datenmenge, geliefert von einem Query. Aber das ist nur meine Meinung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:32 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 by Thomas Breitkreuz