powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / проблема с odac
14 сообщений из 14, страница 1 из 1
проблема с odac
    #38010855
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, что я делаю не так
...
Рейтинг: 0 / 0
проблема с odac
    #38010863
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
простите, сообщение отправилось %)

Подскажите, что я делаю не так

сторед функция в оракле

Код: plsql
1.
2.
3.
4.
5.
CREATE OR REPLACE FUNCTION TestFunc(p_year IN VARCHAR2, p_sign IN NUMBER)
  RETURN NUMBER IS
  RESULT     NUMBER;

...



код на шарпе:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
using (OracleCommand command = connection.CreateCommand())
{
 command.CommandText = "TestFunc";
 command.CommandType = CommandType.StoredProcedure;

 command.Parameters.Add("p_sign", unit);
 command.Parameters.Add("p_year",year);

 var result = new OracleParameter("RESULT", OracleDbType.Int32, int.MaxValue) { Direction = ParameterDirection.ReturnValue };
 command.Parameters.Add(result);
 command.ExecuteNonQuery();
}



Во первых именна параметров вобше не имеют никакого значения. во вторых в ф-ю оракла передается только 1 параметр в данном случае второй (command.Parameters.Add("p_year",year);), который сопостовляется с первым ф-и оракла. Что за магия такая?
...
Рейтинг: 0 / 0
проблема с odac
    #38010867
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iber,

параметр с Direction = ParameterDirection.ReturnValue надо добавлять первым в списке параметров.
...
Рейтинг: 0 / 0
проблема с odac
    #38010965
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хм, а как сделать чтобы имена параметров были связаны друг с другом...очень неудобно получается, нужно в шарпе всегда делать тот же порядок параметров, который в сторед ф-и.
...
Рейтинг: 0 / 0
проблема с odac
    #38011221
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iber,

есть у OracleCommand свойство BindByName, однако оно поддерживается только для CommandType.Text (по крайней мере в версии odac, которую я использую).
...
Рейтинг: 0 / 0
проблема с odac
    #38011225
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iberочень неудобно получается, нужно в шарпе всегда делать тот же порядок параметров, который в сторед ф-и.
в чем конкретно проявляется неудобство?
...
Рейтинг: 0 / 0
проблема с odac
    #38011745
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это намного менее прозрачно, чем если бы порядок был произвольный, а связь по именам. у меня даже в мыслях не было, что результ валуе обязательно должно идти первым, если бы не вы, непонятно сколько бы я промучился.
...
Рейтинг: 0 / 0
проблема с odac
    #38012424
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iber,

в свое время столкнулся точно с такой же проблемой :)
...
Рейтинг: 0 / 0
проблема с odac
    #38012455
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юзайте OracleCommandBuilder.DeriveParameters() и будет Вам счастье...
...
Рейтинг: 0 / 0
проблема с odac
    #38018015
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оказывается все намного проще:

Код: c#
1.
command.BindByName = true;


http://it3xl.wordpress.com/2010/09/09/odp-net-тонкости-биндинга-переменных/
...
Рейтинг: 0 / 0
проблема с odac
    #38018131
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iber,

в приведенной ссылке OracleCommand - не хранимая процедура.
...
Рейтинг: 0 / 0
проблема с odac
    #38018303
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nicky_N а я как понял это проблема всей библиотеки.

я пробовал у себя с хранимой ф-ей все работает как нужно, после установки этого флага.
...
Рейтинг: 0 / 0
проблема с odac
    #38018401
Nicky_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Iber,

какую версию ODAC используете?
...
Рейтинг: 0 / 0
проблема с odac
    #38019227
Iber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
11
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / проблема с odac
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]