Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из C# / 4 сообщений из 4, страница 1 из 1
05.09.2013, 14:18
    #38387934
FLUENT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из C#
Добрый день!

В С# пытаюсь вызвать процедуру:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
String pQuery = "pakage.procedure@testDB";
              OracleCommand orclCmd = new OracleCommand(pQuery, connection);
              orclCmd.CommandType = CommandType.StoredProcedure;

              // IN
              orclCmd.Parameters.Add(new OracleParameter(":branch_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":branch_"].Value = reader[1].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":doc_num_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":doc_num_"].Value = getMaxVal();

              orclCmd.Parameters.Add(new OracleParameter(":doc_date_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":doc_date_"].Value = DateTime.Parse(reader[0].ToString()).ToShortDateString();

              orclCmd.Parameters.Add(new OracleParameter(":acc_cl_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":acc_cl_"].Value = reader[3].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":bank_co_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":bank_co_"].Value = reader[1].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":acc_co_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":acc_co_"].Value = reader[7].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":acc_co_budjet_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":acc_co_budjet_"].Value = null;

              orclCmd.Parameters.Add(new OracleParameter(":name_co_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":name_co_"].Value = reader[2].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":inn_co_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":inn_co_"].Value = reader[8].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":purpose_id_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":purpose_id_"].Value = reader[9].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":purpose_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":purpose_"].Value = reader[10].ToString();

              orclCmd.Parameters.Add(new OracleParameter(":summa_", OracleDbType.Int32)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":summa_"].Value = Convert.ToInt32(reader[11].ToString());

              orclCmd.Parameters.Add(new OracleParameter(":type_doc_", OracleDbType.Varchar2)).Direction = ParameterDirection.Input;
              orclCmd.Parameters[":type_doc_"].Value = "06";

              // OUT
              OracleParameter prmRes = orclCmd.Parameters.Add(new OracleParameter(":P_error_code", OracleDbType.Int32));
              prmRes.Direction = System.Data.ParameterDirection.Output;

              prmRes = orclCmd.Parameters.Add(new OracleParameter(":P_error_note", OracleDbType.Varchar2));
              prmRes.Direction = System.Data.ParameterDirection.Output;

              prmRes = orclCmd.Parameters.Add(new OracleParameter(":P_trans_id", OracleDbType.Int32));
              prmRes.Direction = System.Data.ParameterDirection.Output;

              prmRes = orclCmd.Parameters.Add(new OracleParameter(":P_error_code", OracleDbType.Int32));
              prmRes.Direction = System.Data.ParameterDirection.Output;

              orclCmd.ExecuteNonQuery();



При запуске выдает ошибку:
...
Рейтинг: 0 / 0
05.09.2013, 16:02
    #38388119
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из C#
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
05.09.2013, 16:55
    #38388192
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из C#
Код: c#
1.
... OracleParameter(":summa_" ...



не нужно двоеточие
...
Рейтинг: 0 / 0
06.09.2013, 09:27
    #38388680
FLUENT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов хранимой процедуры из C#
Доброе утро!

Короче, разобрался в своих ошибках:
Все заработало!

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
              OracleCommand orclCmd = new OracleCommand();
              orclCmd.Connection = connection;
              orclCmd.CommandText = "pakage.procedure@testDB";
              orclCmd.CommandType = CommandType.StoredProcedure;
              OracleCommandBuilder.DeriveParameters(orclCmd);

              // IN
              orclCmd.Parameters["branch_"].Value = reader[1].ToString().Trim();
              orclCmd.Parameters["doc_num_"].Value = getMaxVal().Trim();
              orclCmd.Parameters["doc_date_"].Value = date_;
              orclCmd.Parameters["acc_cl_"].Value = reader[3].ToString().Trim();
              orclCmd.Parameters["bank_co_"].Value = reader[1].ToString().Trim();
              orclCmd.Parameters["acc_co_"].Value = reader[7].ToString().Trim();
              orclCmd.Parameters["acc_co_budjet_"].Value = null;
              orclCmd.Parameters["name_co_"].Value = reader[2].ToString().Trim();
              orclCmd.Parameters["inn_co_"].Value = reader[8].ToString().Trim();
              orclCmd.Parameters["purpose_id_"].Value = reader[9].ToString().Trim();
              orclCmd.Parameters["purpose_"].Value = reader[10].ToString().Trim();
              orclCmd.Parameters["summa_"].Value = Int32.Parse(reader[11].ToString().Trim())/100;
              orclCmd.Parameters["type_doc_"].Value = "06";

              orclCmd.ExecuteNonQuery();
              // OUT

              Int32 errCode = Int32.Parse(orclCmd.Parameters["P_error_code"].Value.ToString());
              String errNote = orclCmd.Parameters["P_error_note"].Value.ToString();
              String transID = orclCmd.Parameters["P_trans_id"].Value.ToString();
              Int32 clientAmount = Int32.Parse(orclCmd.Parameters["P_client_ammount"].Value.ToString());



Спасибо всем за помощь.
В особенности Ex_Soft
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / вызов хранимой процедуры из C# / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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