Parameters within a Business Data Catalogs methods are used to pass values in to the executing SQL Statement or stored procedure to help with filtering, or describe the data that is coming back in a return parameter. BDC Parameters can therefore have a direction of both In and Out.
Input BDC Parameters
For each parameter you want to use in your SQL string or stored procedure you want to execute on your database you need to define a BDC parameter in your XML application definition file. If this is a Finder BDC method you'll generally want this to be defined as a FilterDescriptor also.
In our example below are are looking at a SpecificFinder method. We know that the SpecificFinder must only return one row of data so the parameter passed in must enable us to filter by the primary key field in the WHERE clause:

The @ sign for the parameter is specific for MS SQL Server. For Oracle the character is :
So @ProductID needs to be defined as an Input parameter for the SpecificFinder method

The Business Data Catalog Parameter element has two attributes - Direction and Name.
The direction should be In for our input parameters, with the name matching whatever the name was in our SQL string or stored procedure.
Each parameter should also have a TypeDescriptor element which provides some more information about it
TypeName - .NET type the parameter is, eg System.Int
Name - a unique name for the type descriptor
IdentifierName - if this parameter related to an identifier field is should have the appropriate attribute. This is to tell the BDC where to pass unique key values into SpecificFinder methods (to return just a single row of data), and association methods.
Default Values

You can also set default values for your parameters. This is useful if you have multiple parameters defined to filter your data, but your users may at some time only want to enter data for a single filter. As you can see you have to set the default value to be aligned with a MethodInstance. As we've said in other articles we only ever have one method = one methodinstance so just label it appropriately here.
Output BDC Parameters
You'll only ever have a single output Business Data Catalog parameter. The output parameter defines the structure of the data being returned. The Business Data Catalog uses ADO.Net classes to get backend data to sharepoint. These classes are the DataReader and the DataRecord, so we have to define them in the return parameter’s typedescriptors.

Parameters’ and especially return parameter definitions are the most complex XML in you BDC Application Definition File. If you use BDC Meta Man to generate you Application Definition Files, you just need to select which columns you want to be returned in each method - therefore generating the output parameter, and which columns to be setup with filters and therefore generating your input parameter, filterdescriptors and any necessary changes to a SQL string.

