Ich habe eine C++ - Anwendung (kompiliert mit VS2003 läuft auf Windows 2000 Server gegen SQL 2000-Datenbank), die seit Jahren gut lief und jetzt abstürzt.Ausnahmeproblem mit ODBC und C++ verursacht bizarre Datenbankverhalten
Meine Protokollierung zeigt, dass die Datenbankverbindung (ODBC mit dem SQL Server-Treiber) gut funktioniert (Datenbank lesen und aktualisieren). Wenn eine Ausnahme ausgelöst wird (und abgefangen/protokolliert wird, aber kein Detail), kann die Verbindung Daten lesen aus der Datenbank, kann aber die Datenbank nicht mehr aktualisieren.
So sehe ich ein Thread liest die nächste Zeile zu verarbeiten, Senden von Daten aus einem Socket an einen anderen Server, versucht, den Datensatz als verarbeitet und BOOM zu aktualisieren.
Die einzige Fehler Informationen, die ich zurück von der ausgefallenen Abfrage erhalten sind:
[Microsoft][ODBC SQL Server Driver][SQL Server]Statement(s) could not be prepared. [37000]
gefolgt von einem Leerzeichen wie in denen Sie normalerweise den Grund die Abfrage fehlgeschlagen (schlechte Syntax, siehe Tabelle nicht gefunden, was auch immer, aber diesmal nichts).
Dieser Code verarbeitet Zehntausende von Aufzeichnungen, kann für Monate laufen und kurz nach diesem Thread (scheint immer das erste Opfer zu sein, kann nur der beschäftigt sein und wird zuerst erwischt) beginnt zu ersticken alle anderen Verbindungen scheinen zu haben Das gleiche Problem - Lesen ist erlaubt, aber Updates werfen diese Ausnahme.
Ich habe mir den Task-Manager das letzte Mal angeschaut (er wird schnell zurückgeworfen, so dass ich nicht lange nachsehen kann) und die App verwendete die üblichen 5 bis 6 Megabyte RAM und die anderen Ressourcen sahen normal aus.
Andere Anwendungen verwenden die Datenbank und haben während dieser Zeit keine Fehler.
ich etwas nicht online finden können, wo Sie diese gemeldeten Fehler Ergebnis erhalten, wenn die Abfrage gültig ist ...
HELP!