Search code examples
oracle-databaseasp-classiciis-7.5windows-server-2008

Server 2003 to Server 2008 - Multiple-step OLE DB operation errors


Migrated from Server 2003 to Server 2008 R2. Classic ASP app started reporting the 'Multiple-step OLE DB operation generated errors' message. 32-bit DSN is setup correctly and has been tested. The app pool for this particular app is set to 32-bit. In fact, the ASP app connects to the same DSN when the user logs in on the web.

There is a section however that calls a Oracle stored procedure using ADODB.Command, CommandType adCmdText, with a handful of parameters (sent from a form).

It's some like:

{ Call this.SPROC(?, ?, ?, ?, ?, ?, ?, ?, ?, null, null, null, ?, ?, ?, ?, ?, ?, ?) }

Does anyone have any ideas? My first thought is that there is some change to the CreateParameter datatypes in Server 2008...


Solution

  • I finally fixed this. The solution was found in the last post of this thread: https://forums.oracle.com/thread/80441

    It seems if I was using ODBC, setting the precision and scale for all the numeric parameters would have resolved the issue, however, for OLE DB this did not fix the issue. Changing all numeric parameters from adNumeric to adDouble did fix the issue.

    For those not wanting to venture to the Oracle forums. The first way is done like this:

    Set Parameter = Command.CreateParameter("inRequestType", adNumeric, adParamInput, <length>, <value>)
    Parameter.Precision = 10
    Parameter.NumericScale = 0
    Parameters.Append Parameter
    

    Doing that did not fix my issue, I had to change adNumeric to adDouble (131 to 5).