v_cur IN OUT Types.cursor_type
========================================

As you could see the last sp param has not been added explicitly
to the UniCommand.Parameters collection.

Launching the application the messagebox show 14 records found.
If I change in c# code the name of the parameters substituting v_ with @ (in all places, that is adding parameter and assigning values)
then the message box return 0 records. I've leave checkParameter to false (the default).

If parameters are added to the command collection in the order that is different from the function parameters order in database, it is necessary to describe the command by setting UniCommand.ParameterCheck to true to reoder parameters in a proper way (omitted parameters will be created and assigned DBNull value): http://www.devart.com/dotconnect/univer ... l#storproc.

I've added the parameters in the same order as in the stored procedure header. Only I've not added the last parameter (the cursor).
In my case CheckParameter = false (the default). If I name the c# parameters as the sp parameter all run fine, if I use different names all run but the row retrieved are wrong (none against 14 rows).

Hi,
I thank you but the misunderstanding is with the phrase in your help on parameter. Exactly

"When you invoke a stored procedure you have to create collection of parameters that corresponds strictly to set of arguments for the stored procedure in quantity and types. Names of parameters do not matter unless you set UniCommand.ParameterCheck property to true."

The phrase is true (for MySQL, PostgreSQL, MSSQL, etc) but the situation with Oracle is an exception to the rule: names of parameters are always taken into account because the procedure is described before execution (like UniCommand.ParameterCheck=true). We will add this information to our documentation.

1) I've migrated to Universal an entire business application leaving the names of the parameters (c# side) the same as defined before the migration from SQL Server (the names were and are of the form @name, but Oracle db side now are of the form v_name). This assuming positional the parameter definition (c# side)

1) I think surprising that after I migrate an entire business application to SqlServer/Oracle from SqlServer only

-assuming positional the parameter definition in UniCommand
-using different names c# side and Oracle db side

I've never seen problems like that explained above.

Moreover

2) Before send to you my question, I've make the following test. I've call from c# by Universal an Oracle stored procedure passing to it some parameters a, b, c. In the store procedure I've assigned a, b, c to out parameters d, e, f (respectively), returned to c# application. The names of all parameters c# side are DIFFERENT from the corresponding parameter db side, but the parameter definition order is the same.
The values of the out parameters c# side are the same as in parameters.
That is