Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Fehler bei Bereichsprüfung
Krischa - Mo 08.06.09 09:44
Titel: Fehler bei Bereichsprüfung
Hi,
mein Program zeigt mir beim Testen die Fehlermeldung 'Fehler bei Bereichsprüfung' an. Ich kann aber kein Fehler feststellen. Wenn ich das Programm Zeile für Zeile durchlaufe kommt an der Stelle der Fehler.
Delphi-Quelltext
1: 2: 3: 4: 5:
| case stsa of 0:stsa:=query3.fieldbyname('MW0').Value; 1:stsa:=query3.fieldbyname('MW1').Value; 2:stsa:=query3.fieldbyname('MW2').Value; end; |
stsa hat den Wert 2 und die Felder die ich auslese sind auch nicht leer. Was soll ich aus der Fehlermeldung schließen?
jaenicke - Mo 08.06.09 09:47
Die Fehlermeldung besagt normalerweise, dass die Grenzen beim Zugriff auf ein Array überschritten wurden.
Bei einem Datenbankzugriff kenne ich den Fehler nicht, ich weiß nicht wodurch der an der Stelle verursacht werden kann. Aber ich vermute einmal, dass die Felder vielleicht nicht gefunden werden. :gruebel:
oki - Mo 08.06.09 09:58
Du machst ein case auf stsa und weist in der Case-Anweisung stsa einen Wert zu? Könnte das der Fehler sein? Hab ich so nocht nicht ausprobiert.
Gruß oki
Krischa - Mo 08.06.09 10:06
Daran liegt es nicht. Habe das Programm noch 2 mal durchlaufen lassen und auf einmal ist er an der Stelle nicht mehr hängen geblieben sonder ein paar Zeilen weiter.
Delphi-Quelltext
1: 2: 3: 4: 5:
| if prod[j].steuabw=true then begin h1:=StringReplace(floattostr(prod[i].steu),',','.',[rfReplaceAll, rfIgnoreCase]); nachricht := nachricht + slinebreak + 'TAX+7+VAT+++:::' +h1 + #39; nz := nz + 1; end; |
Wenn prod[j].steuabw false ist macht er keine Probleme aber sobal einmal ein true auftaucht bringt er mir die gleiche Fehlermeldung wie oben 'Fehler bei Bereichprüfung' ERangeError. Die Fehlermeldung kommt schon bei der Überprüfung.
Ich verstehe die Welt nicht mehr :(
oki - Mo 08.06.09 10:29
prod[i]?
gibt es das Arrayfeld mit dem Index i in prod?
[edit] Hmmm :?: da war kein roter Kasten [/edit]
der organist - Mo 08.06.09 10:30
Krischa hat folgendes geschrieben : |
Daran liegt es nicht. Habe das Programm noch 2 mal durchlaufen lassen und auf einmal ist er an der Stelle nicht mehr hängen geblieben sonder ein paar Zeilen weiter.
Delphi-Quelltext 1: 2: 3: 4: 5:
| if prod[j].steuabw=true then begin h1:=StringReplace(floattostr(prod[i].steu),',','.',[rfReplaceAll, rfIgnoreCase]); nachricht := nachricht + slinebreak + 'TAX+7+VAT+++:::' +h1 + #39; nz := nz + 1; end; |
Wenn prod[j].steuabw false ist macht er keine Probleme aber sobal einmal ein true auftaucht bringt er mir die gleiche Fehlermeldung wie oben 'Fehler bei Bereichprüfung' ERangeError. Die Fehlermeldung kommt schon bei der Überprüfung.
Ich verstehe die Welt nicht mehr :( |
sicher dass das i nich über die Grenzen geht, wenn eigentlich ein j gemeint ist?
Krischa - Mo 08.06.09 10:37
Ahhhh,
ich sollte nicht so früh mit Porgrammieren anfangen. Es lag am j was eigentlich ein i sein müsste. *schlafen geh* :shock:
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!