Autor Beitrag
Indeterminatus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Mi 02.10.02 20:17 
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:

ausblenden 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!

_________________
_______________________________________
Indeterminatus

---=si tacuisses, philosophus mansisses=---
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: 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

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Indeterminatus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: 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.

_________________
_______________________________________
Indeterminatus

---=si tacuisses, philosophus mansisses=---
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: 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.

_________________
Live long and prosper
MrSpock \\//