Entwickler-Ecke
Datenbanken - EDbEngineError
D. Annies - So 25.05.08 11:48
Titel: EDbEngineError
Hi, Delpher,
ich bekomme bei folgendem Code den obigen Error:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| for n := 1 to stringgrid1.rowcount-1 do begin try table2.locate('SEX;ALT', VarArrayOf([stringgrid1.cells[2,n], stringgrid1.cells[1,n]]), []); stringgrid1.cells[5,n] := table2.fieldbyname('UG').asstring; stringgrid1.cells[6,n] := table2.fieldbyname('OG').asstring; except showmessage('Geburtstag fehlt oder das Alter kann nicht stimmen!'); end; end; |
Das Alter in einem Datensatz wurde als 108 Jahre berechnet, statt 8 Jahre, weil es in der DBTabelle falsch drin steht. Erlaubte Alter sind 1 bis 18 Jahre.
Die Fehlermeldung wird danach angezeigt, aber: Operation nicht anwendbar.
Wie kann ich das (programmtechnisch) vermeiden?
Danke für Idee, Hilfe,
Detlef
mkinzler - So 25.05.08 11:58
Wie berechnst du?
Mod()
D. Annies - So 25.05.08 20:11
Hi, Markus,
ja, die Mod-Funktion kenne ich natürlich, sie spielt hier aber keine Rolle. Entscheidend ist warum das locate, was ja nicht erfolgreich sein kann, diesen Error erzeugen kann, zumindest in der Entwicklungsumgebung. Wenn ich die Exe ohne EUmgebung laufen lasse, merke ich davon nichts, sondern die showmessage kommt gleich.
Soll ich das denn nicht so ernst nehmen?
Gruß, Detlef
mkinzler - Mo 26.05.08 07:41
Das mit MOD war ein Vorschlag, denn
108 mod 100 = 8
D. Annies - Mo 26.05.08 07:52
Hi, Markus,
ja, das habe ich auch so gesehen. Ich habe mich nur gewundert, dass die EUmgeb bei diesem Code so meckert. Dann lase ich es wohl so, oder hat noch jemand anderes eine Idee?
Gruß, Detlef
alzaimar - Mo 26.05.08 10:01
locate liefert 'true', wenn der Datensatz gefunden wurde und 'false', wenn nicht. Du musst bei der Verwendung von 'Locate' *immer* das Ergebnis prüfen, also so etwa:
Delphi-Quelltext
1: 2: 3: 4:
| If Locate('SEX;ALT', KeyFieldArray,[]) Then Begin .. End Else ShowError('Datensatz nicht gefunden'); |
D. Annies - Mo 26.05.08 15:52
Das war's, danke Alzaimer,
Detlef
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!