Parameter binden ODBC



  • Hallo,

    Ich schreibe eine Anwendung mit Visual C++ und muss mit dieser auf eine bestehende Oracle Datenbank der Version 9i zugreifen. Den Zugriff habe ich über ODBC schon hergestellt und auch Abfragen sind schon erfolgreich implementiert.

    Nun habe ich von einem Vorgänger folgenden VB-Code bekommen, an dem ich mich orientieren soll.
    Ich bin schon seit Tagen auf der Suche nach den entsprechenden C++ Funktionen um das ganze zu portieren.

    Allerdings nix gefunden. Ich vermute, das es sich irgendwie mit der Funktion BindParameters der Klasse CDatabase lösen lässt, bei der ich mangels Literatur auch noch nicht voll dahintergestiegen bin.

    Vielleicht hat ja so etwas schon mal gemacht oder jemand kennt einen Ansatz.
    Bin für alles dankbar.

    Gruss

    Hier der zu portierende Codeabschnitt:

    OraDatabase.Parameters.Add "NE_NAME", strNe_Name, ORAPARM_INPUT
        OraDatabase.Parameters("NE_NAME").ServerType = ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "TECH", strTech, ORAPARM_INPUT
        OraDatabase.Parameters("TECH").ServerType = ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "ORT", strOrt, ORAPARM_INPUT
        OraDatabase.Parameters("ORT").ServerType = ORATYPE_VARCHAR2
        OraDatabase.Parameters.Add "RETVAL", 0, ORAPARM_OUTPUT
        OraDatabase.Parameters("RETVAL").ServerType = ORATYPE_NUMBER
        Call DoLog("Parameters: strNe_name = " & strNe_Name & " strTech = " & strTech & " strOrt = " & strOrt)
        ' Prepare procedurecall
        strPlSql = ""
        strPlSql = strPlSql & "DECLARE "
        strPlSql = strPlSql & "   RETVAL INTEGER; "
        strPlSql = strPlSql & "BEGIN "
        strPlSql = strPlSql & "   :RETVAL := IBSYADM.PKG_NE.F_GET_HITS "
        strPlSql = strPlSql & "                   (:NE_NAME,:TECH,:ORT); "
        strPlSql = strPlSql & "END;"
        Call DoLog(strPlSql)
        ' Execute PL/SQL
        OraDatabase.DbExecuteSQL (strPlSql)
        ' Get result
        getHits = OraDatabase.Parameters("RETVAL").Value
        Call DoLog("getHits = " & getHits)
        'Remove the Parameters.
        OraDatabase.Parameters.Remove "NE_NAME"
        OraDatabase.Parameters.Remove "TECH"
        OraDatabase.Parameters.Remove "ORT"
        OraDatabase.Parameters.Remove "RETVAL"
    

Anmelden zum Antworten