OleDb --> Informix Collection Parameter
Posted in 2004
I have an Informix function that takes parameters of type SET (I could
change the parameters to a different collection type if that would
make this work). I am writing a C# application using OleDb. I want
to pass arrays of strings into the Informix function parameters, but I
can't find a way to make that work.
Can anyone help?
Here is an example of what I am trying to do:
-------------------------------------------------------------------------------
Informix:
-------------------------------------------------------------------------------
CREATE FUNCTION myFunction( param1 SET, param2 SET, param3 INTEGER )
RETURNING ......
END FUNCTION;
===============================================================================
C#:
-------------------------------------------------------------------------------
public void CallMyFunction( string[] saParam1, string[] saParam2, int
iParam3 )
{
...
//assign parameters
OleDbParameter[] procParams = new OleDbParameter[3];
procParams[0] = new OleDbParameter( "param1", OleDbType.Variant );
procParams[0].Value = saParam1;
procParams[1] = new OleDbParameter( "param2", OleDbType.Variant );
procParams[1].Value = saParam2;
procParams[2] = new OleDbParameter( "param3", OleDbType.Integer );
procParams[2].Value = daysAgo;
//get results
OleDbConnection connection = new OleDbConnection( connectionString
);
connection.Open();
OleDbCommand command = connection.CreateCommand();
command.CommandType = CommandType.StoredProcedure;
command.CommandText = procName;
foreach( OleDbParameter procParam in procParams )
command.Parameters.Add( procParam );
//this is where Exception is thrown:
OleDbDataReader dataReader = command.ExecuteReader();
...
}