Entwickler-Ecke
Datenbanken - Schweres Problem mit Locate
Indeterminatus - Mi 02.10.02 20:17
Titel: Schweres Problem mit Locate
Ich weiß, ich weiß, dieses Schlüsselwort ist hier schon zur genüge beantwortet worden. Dennoch habe ich eine Fehlermeldung erhalten, die bis jetzt von keiner Nachricht hier auf AUQ! behandelt wurde ...
Mein fehlerhaftes Code-Fragment sieht folgendermaßen aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| ... var vorname : String; nachname : String; begin ... { Datenbankverbindung herstellen, Tabelle öffnen etc. }
... { vorname u. Nachname werden von Editfeldern zugewiesen ... }
if ( not table1.Locate( 'Vorname;Nachname', VarArrayOf( [ vorname, nachname ] ), [] ) ) then begin table1.Close; // Fehlermeldung etc. end; |
Jetzt bekomme ich die Fehlermeldung "Operation nicht anwendbar." mit der Exception-Klasse EDBEngineError an der Stelle der Locate-Anweisung.
Mit einer "normalen" Locate-Anweisung (d.h. es wird nur nach 1 Feld gesucht) funktioniert alles tadellos, nur sobald ich es mit mehreren Feldern probiere bekomme ich laufend diese Fehlermeldungen.
Falls irgendjemand eine Idee hat, wie man das lösen kann, BITTE !!! Habe schon alle möglichen Resourcen nachgeschlagen, weil ich mit diesem Problem ursprünglich ganz alleine fertig werden wollte, aber ich schaff's einfach nicht, weil mir nicht klar ist, wo der Fehler liegen könnte ...
Vielen Dank im Voraus!
LCS - Do 03.10.02 06:06
Hi
mal vorausgesetzt die Felder in der Datenbank sind vorhanden und die Tabelle ist geöffnet, sieht der Code gut aus. Locate mit mehreren Feldern funktioniert bei Paradox bzw. Interbase Datenbanken problemlos. Hab ich grad nochmal getestet (mit Delphi 5). "Operation nicht anwendbar" kommt nur wenn die Tabelle geschlossen ist.
Was verwendest du denn für ne Datenbank?
Gruss Lothar
Indeterminatus - Do 03.10.02 10:58
Ich verwende nur Paradox7-Tabellen, die mit der in mein Programm eingebunden werden.
Ich habe nochmal nachkontrolliert, die Tabelle ist sicher zu dem Zeitpunkt der Locate-Anweisung geöffnet ...
Wie schon gesagt, mit der Abfrage auf nur EIN Feld der Tabelle funktioniert das ja problemlos.
Ich habe testweise als zweites Feld einen String angegeben, der als Feld in der Tabelle nicht existiert. Habe -wie erwartet- die Fehlermeldung "Feld XXX wurde nicht gefunden." (oder so ähnlich) erhalten.
MrSpock - Do 03.10.02 16:36
Hallo Indeterminatus,
ich meine mich erinnern zu können, dass ich dnselben Fehler einmal hatte und er dann nicht mehr auftrag, wenn die die Optionen nicht leer gelassen habe. Ich weiss zwar nicht warum das so ist und habe mich damals auch gewundert, da ich aber sowieso eine Option verwenden wollte, hat es mich nicht gejuckt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!