OCCI / Unbekannter Fehler / Errorhandling?!

Die Seite kann ich hier leider nicht öffnen (gesperrt vom Arbeitgeber wegen "Web-Community").. naja. ... Werd mir die zu Hause mal ansehen, aber kann eben erst Montag wieder was am Code machen. Demnach geht das ganze ungelöst ins Wochenende. Danke bis hierhin schonmal, schönes Wochenende und hoffentlich bis Montag!
 
Hast du denn nicht die Möglichkeit einen Debugger (z.B. in Visual Studio)? Der wird dir alle nötigen Informationen anzeigen und auch einen Callstack in welcher genauen Zeile der Fehler aufgetreten ist.
 
Moin!
Also der Fehler taucht nun offenbar deutlich seltener auf. Zumindest wenn ich das Programm manuell anstarte. Kann das evtl auch daran liegen, dass ich für die Kompilierung mit __try den Parameter /EHsc ausstellen musste, der ja C++ Ausnahmen aktiviert?!
Weitere Frage.. ich hab meine Fehlerbehandlung nun noch um eine Zeile erweitert, um zu prüfen ob das Resultset noch vorhanden ist. Statt das Resultset auszugeben gibt er mir nun aber dutzendmal (endlos?) die Ausgabezeile davor aus, wo nur die Fehlernummer steht. Ruft sich die Errorfunktion wieder selber auf, wenn in ihr ein Fehlerereignis ausgelöst wird? Wenn dem so ist. wüsste ich zumindest definitiv, dass sich das Resultset verabschiedet, warum auch immer.
[EDIT]
PS: Ich hab Visual Studio, allerdings würde es ziemlichen Aufwand benötigen um die Umgebung nachzustellen und ich weiß ja zumindest ziemlich genau in welcher Zeile der Fehler ensteht.. und warum verrät mir der Debugger ja auch nicht.....
 
Moin!
Also der Fehler taucht nun offenbar deutlich seltener auf. Zumindest wenn ich das Programm manuell anstarte. Kann das evtl auch daran liegen, dass ich für die Kompilierung mit __try den Parameter /EHsc ausstellen musste, der ja C++ Ausnahmen aktiviert?!

Nein, ich denke nicht dass das einen Einfluss hat. Fehler bleibt Fehler ;)

Weitere Frage.. ich hab meine Fehlerbehandlung nun noch um eine Zeile erweitert, um zu prüfen ob das Resultset noch vorhanden ist. Statt das Resultset auszugeben gibt er mir nun aber dutzendmal (endlos?) die Ausgabezeile davor aus, wo nur die Fehlernummer steht. Ruft sich die Errorfunktion wieder selber auf, wenn in ihr ein Fehlerereignis ausgelöst wird? Wenn dem so ist. wüsste ich zumindest definitiv, dass sich das Resultset verabschiedet, warum auch immer.

Kompilierst du für 32 Bit oder 64 Bit? Wenn ich die 32 Bit Implementierung von SEH noch richtig im Kopf habe wird der __except Block innerhalb des KiUserExceptionDispatcher aufgerufen ohne dass dabei der Handler aus fs:[0] entfernt wird. Daher ist es möglich, dass sich der gleiche Fehler im __except Block wieder selbst aufruft. Der Debugger könnte dir hier mehr sagen (oder Konsolenausgaben zu Debugzwecken).
 
Hi!
Ich kompiliere für 32 Bit. Das Problem ist jetzt allerdings gelöst bzw. umgangen. Ich hab die Funktion etwas umgeschrieben und zieh die Werte des resultSets nun über eine andere Funktion raus. Das ist zwar insgesamt etwas umständlicher, aber das Programm läuft... der Vollständigkeit halber noch der aktuelle Quellcode:

Code:
__try{
	rs = stmt->executeQuery();
	for (int k = 1; k <= col; k++)
		rs->setCharacterStreamMode(k, 10000);
	while (rs != NULL && rs->next() ){
		myFunctions.sqlLogEntry("Before for",0,5);
		for (int i = 1; i <= col; i++){
			char buffer[4096];
			unsigned int length =0;
			unsigned int size = 500;
			Stream *stream = rs->getStream(i);
			while (stream->status () == Stream::READY_FOR_READ)
			{
				length += stream->readBuffer(buffer, size);
			}
			
			CString tmp=(LPCSTR)buffer;
			tmp=tmp.Left(length);
			cout << tmp << endl;
			myFunctions.sqlLogEntry("Value pushed "+tmp,0,5);
			vecReturn.push_back(tmp);
			isOk=TRUE;
		}//for
		myFunctions.sqlLogEntry("After for",0,5);
	}//while		
}__except(errorOutput(GetExceptionCode(), GetExceptionInformation(), rs)){ 
	cout << "FEHLER" << endl;
	return FALSE;
}

Danke für die Hilfe, auch wenn es letztlich nicht wirklich zu einer Lösung geführt hat, hat es zumindest mich persönlich weitergebracht :).

Beste Grüße!
 
Zurück