Wrox Home  
Search P2P Archive for: Go

  Return to Index  

activex_data_objects thread: Output Parameters and stored procedure problem


Message #1 by "Rosalind Philips" <rosalind115@a...> on Wed, 19 Dec 2001 00:12:19
Hi there.  I am having the dreaded "Multiple-step OLE DB operation 

generated errors." problem.



My problem is with output parameters.



The relevant code is below.  I am using Access 2000, MSSQL 2000, MDAC 

2.6.  The stored procedure works fine if I remove the output parameter.  

The stored procedure works fine with output parameter if I run it from SQL 

Analyzer.  Does Anybody have any ideas?  



Rosalind Philips

rosalind115@a...



        With cmdSQL

            .ActiveConnection = cnSQL

            .CommandText = strStoredProcedureName

            .CommandType = adCmdStoredProc

            If blnParameterFlag = False Then

            'Add Input Parameters

                .Parameters.Append .CreateParameter("@TableName", 

adVarChar, adParamInput, 100, strSqlTableName)

                .Parameters.Append .CreateParameter("@ColumnName", 

adVarChar, adParamInput, 100, strSqlColumnName)

                .Parameters.Append .CreateParameter("@Value", adDecimal, 

adParamInput, 19, DblValue)

                .Parameters("@Value").Size = 19

                .Parameters("@Value").Precision = 2

                .Parameters.Append .CreateParameter("@SchoolYear", adChar, 

adParamInput, 9, strSchoolYear)

                .Parameters.Append .CreateParameter("@SchoolMonth", 

adChar, adParamInput, 2, strSchoolMonth)

                .Parameters.Append .CreateParameter("@CoDist", adChar, 

adParamInput, 5, strCountyDist)

                .Parameters.Append .CreateParameter("@RevCode", adVarChar, 

adParamInput, 6, strRevCode)

                .Parameters.Append .CreateParameter("@AppMaField", adChar, 

adParamInput, 2, strAppMaField)

                .Parameters.Append .CreateParameter("@ReasonDesc", 

adVarChar, adParamInput, 50, strRemarks)

                .Parameters.Append .CreateParameter("@PersonName", 

adVarChar, adParamInput, 40, strPersonName)

                .Parameters.Append .CreateParameter("@AdjDate", 

adDBTimeStamp, adParamInput, 40, dtExtractDate)

                'Add Output Parameters

                .Parameters.Append .CreateParameter("@ReturnCode", 

adInteger, adParamOutput, , 0)

                blnParameterFlag = True

            Else

                .Parameters.Refresh

                .Parameters("@TableName").Value = "dbo." + strSqlTableName

                .Parameters("@ColumnName").Value = "dbo." + 

strSqlColumnName

                .Parameters("@Value").Value = DblValue

                .Parameters("@SchoolYear").Value = strSchoolYear

                .Parameters("@SchoolMonth").Value = strSchoolMonth

                .Parameters("@CoDist").Value = strCountyDist

                .Parameters("@RevCode").Value = strRevCode

                .Parameters("@AppMaField").Value = strAppMaField

                .Parameters("@ReasonDesc").Value = strRemarks

                .Parameters("@PersonName").Value = strPersonName

                .Parameters("@AdjDate").Value = dtExtractDate

                .Parameters("@ReturnCode").Value = 0



            End If

            .Execute , , adExecuteNoRecords

            intRetCode = .Parameters("@ReturnCode")

        End With
Message #2 by "Zadoyen, Eva" <EZadoyen@s...> on Wed, 19 Dec 2001 09:14:43 -0500
May be your problem is in "adExecuteNoRecords"



-----Original Message-----

From: Rosalind Philips [mailto:rosalind115@a...]

Sent: Tuesday, December 18, 2001 7:12 PM

To: ActiveX_Data_Objects

Subject: [activex_data_objects] Output Parameters and stored procedure

problem





Hi there.  I am having the dreaded "Multiple-step OLE DB operation 

generated errors." problem.



My problem is with output parameters.



The relevant code is below.  I am using Access 2000, MSSQL 2000, MDAC 

2.6.  The stored procedure works fine if I remove the output parameter.  

The stored procedure works fine with output parameter if I run it from SQL 

Analyzer.  Does Anybody have any ideas?  



Rosalind Philips

rosalind115@a...



        With cmdSQL

            .ActiveConnection = cnSQL

            .CommandText = strStoredProcedureName

            .CommandType = adCmdStoredProc

            If blnParameterFlag = False Then

            'Add Input Parameters

                .Parameters.Append .CreateParameter("@TableName", 

adVarChar, adParamInput, 100, strSqlTableName)

                .Parameters.Append .CreateParameter("@ColumnName", 

adVarChar, adParamInput, 100, strSqlColumnName)

                .Parameters.Append .CreateParameter("@Value", adDecimal, 

adParamInput, 19, DblValue)

                .Parameters("@Value").Size = 19

                .Parameters("@Value").Precision = 2

                .Parameters.Append .CreateParameter("@SchoolYear", adChar, 

adParamInput, 9, strSchoolYear)

                .Parameters.Append .CreateParameter("@SchoolMonth", 

adChar, adParamInput, 2, strSchoolMonth)

                .Parameters.Append .CreateParameter("@CoDist", adChar, 

adParamInput, 5, strCountyDist)

                .Parameters.Append .CreateParameter("@RevCode", adVarChar, 

adParamInput, 6, strRevCode)

                .Parameters.Append .CreateParameter("@AppMaField", adChar, 

adParamInput, 2, strAppMaField)

                .Parameters.Append .CreateParameter("@ReasonDesc", 

adVarChar, adParamInput, 50, strRemarks)

                .Parameters.Append .CreateParameter("@PersonName", 

adVarChar, adParamInput, 40, strPersonName)

                .Parameters.Append .CreateParameter("@AdjDate", 

adDBTimeStamp, adParamInput, 40, dtExtractDate)

                'Add Output Parameters

                .Parameters.Append .CreateParameter("@ReturnCode", 

adInteger, adParamOutput, , 0)

                blnParameterFlag = True

            Else

                .Parameters.Refresh

                .Parameters("@TableName").Value = "dbo." + strSqlTableName

                .Parameters("@ColumnName").Value = "dbo." + 

strSqlColumnName

                .Parameters("@Value").Value = DblValue

                .Parameters("@SchoolYear").Value = strSchoolYear

                .Parameters("@SchoolMonth").Value = strSchoolMonth

                .Parameters("@CoDist").Value = strCountyDist

                .Parameters("@RevCode").Value = strRevCode

                .Parameters("@AppMaField").Value = strAppMaField

                .Parameters("@ReasonDesc").Value = strRemarks

                .Parameters("@PersonName").Value = strPersonName

                .Parameters("@AdjDate").Value = dtExtractDate

                .Parameters("@ReturnCode").Value = 0



            End If

            .Execute , , adExecuteNoRecords

            intRetCode = .Parameters("@ReturnCode")

        End With




$subst('Email.Unsub').

Message #3 by "David Billingham" <db@p...> on Wed, 19 Dec 2001 16:02:24 -0000
 Hi Rosalind

 

 The line below suggests that you are trying to add a value to the output

 parameter

 

 .Parameters.Append .CreateParameter("@ReturnCode",

 adInteger, adParamOutput, , 0)

 

 Try removing this, so you get:

 

 .Parameters.Append .CreateParameter("@ReturnCode",

 adInteger, adParamOutput)

 

 HTH

 

 Yours sincerely

 

 David Billingham

Senior Software Developer - Poise Associates

 

 





This e-mail is subject to copyright and the information in it is confidential.  Use of this e-mail or of any information in it other
than by the addressee is unauthorised and unlawful. Please delete this e-mail if you have received it in error.





Message #4 by "Rosalind Philips" <rosalind115@a...> on Wed, 19 Dec 2001 17:22:47
> May be your problem is in "adExecuteNoRecords"





Thanks.  This solved the problem.  I guess having an output parameter 

means that records are returned even if the stored procedure is just doing 

an update/insert.

  Return to Index