do while schleife wird durch

mave1200

Grünschnabel
Hallo,

ich habe ein kleines Problem ich lese mit einem c++ programm daten aus einer datenbank aus um auf eine eingabe zu warten.
Das Programm funktionier wird nur abgebrochen.
ich rufe die funktion, die die daten ausliest in einer do while schleife auf
und nach weniger als einer minute wird das programm von der c++ debug library abgebrochen.

Code:
do
{
test = readBE();
}
while(test>8);

in der Funktion readeBE() wird eine Variable auf 9 gesetzt und nur wenn ein neuer Wert in der datenbank steht wird der Wert aus der Datenbank eingesetzt, der immer unter 8 liegt.

also passiert nicht wirklich etwas. Bis eine Eingabe kommt.

genaue fehler meldung:

Debug error
This application has requested the runtime to terminate it in an unusual way

Die fehler meldung kommt von Microsoft Visual C++ Debug Library
zur info:

VS2008
WinXP (englisch)

Vielleicht kann mir irgentjemand helfen zu verhindern das das programm abgebrochen wird
 
Das hat mit der Schleife nichts zu tun.
Irgendwo in der Funktion drin hast du einen Absturz
Falls verfügbar, am besten den Source von der Funktion unter die Lupe nehmen...
Gruß
 
Hi,

ich kann das nicht ganz verstehen. denn die funktion geht doch. also wenn ich sie
einmal auf rufe bekomme ich genau das was ich erwarte
wenn ich die funktion in der schleife aufrufe und in der nächsten 15 sekunden auch die änderung in der datenbank vornehme reagiert das programm auch darauf. also muss es eigentlich mit der ständigen wiederholung zu tun haben. oder nicht

kann es sein das man über ODBC nicht ständig auf eine datenbank zugreifen kann
und das der irgentwann dicht macht?

ich habe das mal durch den debug modus laufen lassen. und da bekomme ich eine andere fehlermeldung

Microsoft Visual Studio

Unbehandelte Ausnahme bei 0x7c812a5b in wancap.exe: Microsoft C++ Ausnahme: CDBException an Speicherposition
0x0012f818...



vielen dank für die schnelle antwort
 
Zuletzt bearbeitet:
Hi,

ich verfolge gerade, dass es ein problem ist das ich ODBC so oft aufrufe ! habe jetzt mal
die funktion Sleep(500) eingebaut. und es läuft jetzt schon seit 5 min ohne fehlermeldung

Ich danke dir sheel das du mich darauf gebracht hast dass das Problem in der funktion liegt.
vielen dank nochmal

MfG
 
Zurück