OleDbParameter и их порядок при вызове процедуры
От: Аноним  
Дата: 19.10.10 11:59
Оценка:
Добрый день, коллеги!

У меня возник вопрос, а ответа поиском не нашел, может, кто-нибудь сталкивался уже...
Итак, есть процедура в ORACLE, есть код на C#, который ее вызывает.
У процедуры несколько параметров разных типов, типы параметров в C# соответствуют оракловым. Порядок добавления параметров в объект OleDbCommand не соответствует порядку параметров процедуры в ORACLE.
Но передаются значения параметров почему-то в порядке их добавления к OleDbCommand, а не выбираются по именам. Вопрос — почему, если у меня в процедуре:


CREATE OR REPLACE PROCEDURE ПРОЦЕДУРА(
параметр1 IN INTEGER;
параметр2 IN VARCHAR2;
параметр3 IN INTEGER;
...


а в коде явно указаны имена:

OleDbCommand tmp = new OleDbCommand("ПРОЦЕДУРА", conn);
            tmp.CommandType = CommandType.StoredProcedure;

            OleDbParameter param = null;
            param = tmp.Parameters.Add(new OleDbParameter("параметр3", OleDbType.Integer));
            param.Value = 1;
            OleDbParameter param = null;
            param = tmp.Parameters.Add(new OleDbParameter("параметр2", OleDbType.VarChar));
            param.Value = "тест";
            OleDbParameter param = null;
            param = tmp.Parameters.Add(new OleDbParameter("параметр1", OleDbType.Integer));
            param.Value = 2;


в процедуру попадут параметры: параметр1 = 1, параметр2 = "тест", параметр3 = 2, хотя все должно быть немного иначе?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.