powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по OleDbCommand
9 сообщений из 9, страница 1 из 1
Вопрос по OleDbCommand
    #35787945
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такая проблема. В OleDbCommand для работы с Oracle важен только порядок передачи параметров (он должен быть таким же как в хранимке). Можно ли ка-то это исправить? может я что-то недопонимаю?
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35788149
Фотография WYPMAH
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw
скажите прямо, в чем проблема?
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35788194
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть хранимка
Код: plaintext
1.
2.
3.
4.
create or replace package p_KS is

  procedure upd(p1_ number, p2_number);

end p_KS;

так она вызывается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
OleDbCommand cmd = new OleDbCommand(commandUpdateName/*=p_KS.upd*/);

IEnumerator ie1 = od.Keys.GetEnumerator();
IEnumerator ie2 = od.Values.GetEnumerator();

while (ie1.MoveNext() && ie2.MoveNext())
{ 
    OleDbParameter p = new OleDbParameter();
    p.ParameterName = (string)ie1.Current;
    p.Value = ie2.Current;

    cmd.Parameters.Add(p);
}

dm.ExecuteNonQuery(cmd);

а вот если я переопределю хранимку как
create or replace package p_KS is

procedure upd(p2_ number, p1_number);

end p_KS;

или поменяю столбцы в гриде, то работать не будет, так как имя параметра игнориуется, а тольковажен порядок параметров
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35788204
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда работаю с MS SQL Server и соответственно с SqlCommand, то проблемы такой нет.
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35788234
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это очень неудобно - так как теперь с разработчиком бизнес логики в БД надо еще и согласовывать порядок переменных
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35788793
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надеюсь, идею поймете:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
OleDbCommandBuilder.DeriveParameters(cmd);
foreach(OleDbParameter SPParam in cmd.Parameters)
{
	if(SPParam.Direction==ParameterDirection.ReturnValue || SPParam.Direction==ParameterDirection.Output)
		continue;

	SPParam.Value = (PassedParam=GetParam(SPParam.ParameterName))!=null ? PassedParam.ParamValue : DBNull.Value;
}

cmd.ExecuteNonQuery();

foreach(OleDbParameter SPParam in cmd.Parameters)
{
	if(SPParam.Direction==ParameterDirection.Input)
		continue;

	if(SPParam.Direction==ParameterDirection.ReturnValue)
		ReturnValue=Convert.ToInt32(SPParam.Value);

	if((PassedParam=GetParam(SPParam.ParameterName))!=null)
		PassedParam.ParamValue=SPParam.Value;
}
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35789392
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо - идею понял: информацию опараметрах хранимой процедуры получаем не априори, а непосредственно с сервера БД.
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35789402
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только вот почему-то ексепшн

The stored procedure 'p_package.upd' doesn't exist

хотя процедура точно существует. в чем может быть проблема?
...
Рейтинг: 0 / 0
Вопрос по OleDbCommand
    #35789439
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmaw,
воспользуйтесь родным провайдером от Oracle - ODP.NET

http://www.oracle.com/technology/tech/dotnet/index.html
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопрос по OleDbCommand
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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