debuggen mit Oracle Dataaccess Client nicht möglich

  • VB.NET
  • .NET (FX) 4.0

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    debuggen mit Oracle Dataaccess Client nicht möglich

    Hallo zusammen,

    ich habe folgendes Problem mit meinem Projekt. In meinem Projekt stelle ich eine Verbindung mit einer Oracle Datenbank über den Oracle Dataaccess client her um Daten abzurufen. Das ganze hat jetzt knapp 6 Monate Problemlos funktioniert. Aber von einem Tag auf den anderen kann ich das Projekt plötzlich nicht mehr Debuggen. Starte ich das Projekt im Debugmode bekomme ich immer wenn ich die Verbindung aufbauen will folgende Fehlermeldung:

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    die Fehlermeldung wird bei conn.Open() geschmissen. Das merkwürdige daran ist, das es funktioniert wenn ich des Projekt neu erstelle, und dann die exe Datei im Debug Verzeichnis starte. Dann funktioniert alles wunderbar. Aber ich kann das Projekt nicht mehr debuggen.

    Das Programm selbst ist Modular aufgebaut und ich habe schon seit Monaten nicht mehr an dem Modul gearbeitet, dass jetzt den Fehler auslöst. Daher kann ich es mir auch nicht erklären. Hat jemand eine Idee woran das liegen kann?
    Meine magische Glaskugel ist leider in der Reparatur und meine Telepathie hat auch ihre Probleme derzeit.
    Könntest du uns eventuell deinen Quellcode zeigen?

    Grüße
    Väinämö
    Ich weiß natürlich das Hilfe ohne Quellcode schwer ist daher poste ich hier einen Teil des Codes. Allerdings musste ich einige stellen "Zensieren" da das teilen von Code nicht mit der Firmenstruktur nicht vereinbar ist. Der Knackpunkt des Problems sollte allerdings zu sehen sein.

    VB.NET-Quellcode

    1. Using conn As New OracleConnection(oradb)
    2. Try
    3. conn.Open() 'Hier wird der Fehler geworfen.
    4. Using cmd As New OracleCommand()
    5. cmd.Connection = conn
    6. cmd.CommandText = "Select * From X"
    7. Using dr As OracleDataReader = cmd.ExecuteReader()
    8. dr.Read()
    9. While dr.Read()
    10. 'Do something
    11. End While
    12. End Using
    13. End Using
    14. Catch ex As OracleException ' catches only Oracle errors
    15. Select Case ex.Number
    16. Case 1
    17. MessageBox.Show("Error attempting to insert duplicate data.")
    18. Case 12545
    19. MessageBox.Show("Database error: " + ex.Message.ToString())
    20. Case Else
    21. MessageBox.Show("Database error: " + ex.Message.ToString())
    22. End Select
    23. Catch ex As Exception ' catches any error
    24. MessageBox.Show(ex.Message.ToString())
    25. Finally
    26. End Try
    27. End Using

    Cell schrieb:

    Starte ich das Projekt im Debugmode bekomme ich immer wenn ich die Verbindung aufbauen will folgende Fehlermeldung:

    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    Das ist normal eine sehr einfach zu debuggende Fehlermeldung, die NullReferenceException, und hat normalerweise nix mittm VS zu tun.

    Aber am besten du machst den TryCatch weg, dann bekommst du eher eine brauchbare Fehlermeldung - die ist nämlich offsichtlich nicht richtig - an der von dir angegebenen Stelle kann keine NullReferenceException auftreten.
    Daher gehe ich davon aus, dasss der unsachgemässe TryCatch mal wieder die wahre Problem-Identifikation verhindert.


    Hallo Edr.

    Stimmt es ist wenn ich den Try Catch Block weg mache keine Nullreferenceexception mehr sondern eine andere. Der codeabschnitt wo der Fehler auftritt bleibt aber der gleiche. Außerdem tritt der Fehler nicht immer auf. Und NUR im Debugmode auf.

    Die Fehlermeldung ist Folgende : Ein Ausnahmefehler des Typs "Oracle.DataAccess.Client.OracleException" ist in Oracle.DataAccess.dll aufgetreten.
    Fehlercode: -2147467259

    Komischerweise habe ich genau den gleichen Code noch in einer zweiten Anwendung wo es zu keinerlei Fehlern kommt. Unter VS2015 kann ich das Projekt ebenfalls problemlos deguggen.

    Ich finde dafür einfach keine Logische Erklärung.
    ich hab mir die Fehlernummer mal als HexCode ausgegeben: 80004005, und tatsächlich findet sich auf Stackoverflow was dazu: stackoverflow.com/questions/20…ecting-to-oracle-database

    Hab aber keine Ahnung, ob dir das was bringt.
    Zumindest bist du nicht der einzige auf der Welt, der diesen Fehler kriegt.
    Vielen Dank für deine Hilfe.

    Ich habe das Problem jetzt beheben können. Der Grund dafür war wohl, dass die Oracle Dataaccess.dll nicht mit 64 bit Systemen kompatiebel ist. Ich hatte mein Projekt in den Projekteigenschaften auf x86 eingestellt aber im KonfigurationsManager für das Debugging stand das Projekt auf AnyCPU. Nachdem ich es auch da auf x86 gestellt habe lässt sich das Projekt auch wieder unter VS2013 Debuggen.
    Ich wollte vorhin schon so was vorschlagen.
    Deine Fehlernummer übersetzt sich nämlich in The provider is not compatible with the version of Oracle client
    Das passiert z.B. bei 32-Bit-Oracle-Client auf 64-Bit-Windows.

    Da du aber sagst, dass ein anderes Projekt auf demselben Rechner läuft, wollte ich dich nicht verunsichern.
    Auf die Idee, dass es mit den Projekteinstellungen x86/x64 zu tun haben könnte kam ich natürlich nicht.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --