!noch ne Variante (un)endlicher Schleifen

14/11/2007 - 22:02 von Olaf Doschke | Report spam
Hat man in einem Feld einen Wert, der einen numerischen Überlaufsfehler
bewirkt hatte (z.B. 1000 in einem N(3) Feld), so wird dieser Überlaufswert
mit Sternchen gekennzeichnet.

Soweit kennt das glaube ich jeder.

Ich habe so ein Feld als Schleifenende eingesetzt

For lnCount = 1 TO tabTabelle.nFeld
Insert into curCursor ..
Endfor

Jetzt darf man mal raten was tabTabelle.nFeld in dem Zusammenhang
bewirkte...

Ja, wie schon im Betreff gesagt: Endlosschleife, d.h. ein Ende
war nur dem 2GB-Limit von Tabellen/Cursoren zu verdanken, sonst
wàre halt irgendwann auch der virtuelle Arbeitsspeicher vollgelaufen...

Das nur so als lustige Anekdote am Rande.

Bei der Gelegenheit kam dann zum Einsatz, daß man Felder
mit numerischem Überlauf exakt anhand des Verhaltens,
Foxpro Sternchen sehen zu lassen, schnell auffinden kann:

BROWSE FOR STR(nFeld)="*"

und schon war der Datensatz gefunden un der Störenfried getilgt.

Tschüß, Olaf.
 

Lesen sie die antworten

#1 Jürgen Wondzinski
15/11/2007 - 09:55 | Warnen spam
Hi Olaf,

nette Falle ;) Bleibt die Frage: wie kommt der Wert 1000 überhaupt in die
Tabelle rein? Und: Warum is da kein normales INT Feld in der Tabelle? Ich
nehm schon seit VFP3 keine normaen N(x,0) Felder mehr her, wenn ich
Ganzzahlen speichern will. Dann wàr dein Problem garnicht erst
entstanden...


BROWSE FOR STR(nFeld)="*"





Nette Lösung ;) VFP is halt im Datenmanagement sehr flexibel.




Jürgen Wondzinski

Microsoft Visual FoxPro Technologieberater
Microsoft Most Valuable Professional seit 1996
"*´¨)
¸.•´¸.•*´¨) ¸.•*¨)
(¸.•´. (¸.•` *
.•`.Visual FoxPro: It's magic !
(¸.•``••*

Ähnliche fragen