![]() |
Datenbank: Access • Zugriff über: TADOConnection
Exception bei Locate
Hallo zusammen,
habe versucht bei mir eine lokalisierung eines Datensatzes durchzuführen, was normalerweise kein Problem ist, aber irgendie wehrt sich meine Anwendung dagegen.
Nun zu der eigentlichen Routine: Beim Ereignis OnKeyPress vom TDBGrid reagiere ich auf gültige Zeichen. Dort ermittle ich den richtigen Spaltennamen und rufe dann Locate auf mit meiner Spalte als Key, meinen Character als Value und beide Optionen ([loCaseInsensitive, loPartialKey]) gesetzt. Hier kommt nu eine Exception dass die Argumente vom falschen Typ sind, außerhalb des Gültigkeitsbereiches liegen oder nicht miteinander vereinbar sind. Was läuft da falsch? Gruß, Moony |
Re: Exception bei Locate
Hallo,
zeig' uns bitte mal die entsprechende Routine, so ist das doch etwas zu abstrakt. |
Re: Exception bei Locate
Delphi-Quellcode:
if TB1.Active then
begin if (Key in ['a'..'z', 'A'..'Z']) then if TB1.FieldList.IndexOf(SelectedCol) <> -1 then // SelectCol wird gesetzt beim TitleClick TB1.Locate(SelectedCol, Key, [loCaseInsensitive, loPartialKey]); end; |
Re: Exception bei Locate
Hallo,
Breakpoint auf die Locate-Zeile und nachschauen, was in SelectedCol steht. Falls dort alles OK ist, setz mal vorher DataSource des DBGrids auf NIL und weise es nachher wieder zu. Heiko |
Re: Exception bei Locate
SelectCol ist vollkommen in Ordnung und das setzen des DataSource bringt nichts. Immer noch die gleiche Meldung.
|
Re: Exception bei Locate
Hallo,
mach' in der Locate-Zeile mal aus dem Key einen String, weiß nicht, ob Char als Variant übergeben werden kann. |
Re: Exception bei Locate
Immer noch die gleiche Meldung.
|
Re: Exception bei Locate
Hallo,
dann versuch' es zuerst einmal mit einer "festen" Abfrage:
Delphi-Quellcode:
Um herauszubekommen, was denn da eigentlich falsch ist/sein soll.
TB1.Locate('existierendenSpaltenNamen', 'A', [loCaseInsensitive, loPartialKey]);
Und dann mal die einzelnen Kombinationen ausprobieren. Variiere bitte auch mal die Kombinationen von [loCaseInsensitive, loPartialKey]. Ich möchte nicht ausschließen, dass Kombinationen, die aus Delphisicht korrekt sind, von einzelnen Datenbanken nicht verarbeitet werden können. |
Re: Exception bei Locate
Hallo,
und die Exception kommt ganz sicher genau bei "diesem" Locate. Gehst du auch tatsächlich mit F8 weiter und bekommst die Exception ? Nimm mal das temporär raus partial key. Welche DB ? Heiko |
Re: Exception bei Locate
Also...
@hoika: ja, ich gehe mit F8 weiter und genau in dieser locate zeile kommt die exception. @nahpets: weder die statischen Werte noch unterschiedliche Kombinationen führen zu einem zufriedenstellenden Ergebnis. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 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