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"