[AccessD] The final piece

Салахетдинов Шамиль mcp2004 at mail.ru
Thu Jan 29 13:07:23 CST 2009


John,

I believe you have to use adParamOutput

http://www.eggheadcafe.com/community/aspnet/8/10032246/using-adodbparameter-obj.aspx

--
Shamil

-----Original Message-----
From: jwcolby <jwcolby at colbyconsulting.com>
To: Access Developers discussion and problem solving<accessd at databaseadvisors.com>
Date: Thu, 29 Jan 2009 13:36:54 -0500
Subject: [AccessD] The final piece

> 
> All that has gone before enabled me to create a SP which is 
> capable of returning values, and a query window that is 
> capable of calling my SP and proving to myself that the data 
> is in fact getting back out to the caller.
> 
> Now, the problem is that my VB code that calls the SPs from 
> Access does not appear to return the values.  Given that I 
> am supposed to pass by value or pass by reference 
> "correctly" when I call my SP this is not entirely surprising.
> 
> I am using a function provided by Charlotte, which was 
> probably not worrying about returning values.  the code 
> looks like this:
> 
>    Set cnn = New ADODB.Connection
>    cnn.ConnectionString = mTrustedConnection(strServerName, 
> strDatabase)
>    cnn.CursorLocation = adUseClient
> 
>    'this simplifies accessing the errors
>    'collection, which belongs to the
>    'connection
>    Set colErrs = cnn.Errors
> 
>    cnn.Open
> 
>    Set cmd = New ADODB.Command
>    With cmd
>      .ActiveConnection = cnn
>      'this could also be written as
>      'colErrs.Clear
>      .ActiveConnection.Errors.Clear
>      .CommandType = adCmdStoredProc
>      .CommandText = SPName
>      .CommandTimeout = 120
> 
>      For intLoop = LBound(Params) To UBound(Params)
> 	'gets a parameter and
>          'you have to create ALL the parameters
>          .Parameters.Append .CreateParameter( _
>                "prm" & intLoop, varPrmType, adParamInput, , 
>                                Params(intLoop))
>      Next intLoop
>      .Execute RecordsAffected:=lngRecords, 
> Options:=adCmdStoredProc
> 
> 
> 
> So, I am using the .Execute method of an ADODB.command 
> object to call a stored proc and pass it parameters.
> 
> My problem now is that I need to get a couple of parameters 
> back, i.e. they MAY (depending on the SP) be collecting data 
> from the stored procedure in order to use that data back 
> here in my VB code.
> 
> So, the first question is whether this is even possible?  If 
> I need a different function to call code that returns values 
> that is fine, but I will need to be pointed to one.
> 
> BTW, this function, provided by Charlotte, works quite well 
> to simply execute a stored procedure, as long as I do not 
> anything back from the SP.
> 
> I am getting close now, I can tell.  8-)
> 
> -- 
> John W. Colby
> www.ColbyConsulting.com
> -- 
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
> 




More information about the AccessD mailing list