powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Неверная передача параметра хранимой процедуры
2 сообщений из 2, страница 1 из 1
Неверная передача параметра хранимой процедуры
    #32189126
Orion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите!

Пытаюсь вызвать хранимую процедуру средствами ADO.

Передаю в качестве первого параметра строку, например 'тра-та-та',
а до сервера доходит '-1'.
Не пугайтесь кода, это последний вариант из тех, что я перепробовал.
SQL Profiler показал:
Код: plaintext
exec AddAssessment '-1',  10 

========================================================================
Код: plaintext
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.
ADODB::_CommandPtr cmd = NULL;
cmd.CreateInstance(__uuidof(ADODB::Command));
cmd->ActiveConnection = theApp.m_assess_cn;
cmd->CommandType = ADODB::adCmdStoredProc;
_bstr_t bsCommandText(L "AddAssessment" );
cmd->CommandText = bsCommandText;
ADODB::_ParameterPtr param1=NULL, param2=NULL;
HRESULT hr;
int f_id= 10 ;

hr = param1.CreateInstance(__uuidof(ADODB::Parameter));
if (SUCCEEDED(hr))	hr = param1->put_Type(ADODB::adVarChar);
if (SUCCEEDED(hr))	hr = param1->put_Value(_variant_t(L "тра-та-та" ));
if (SUCCEEDED(hr))	hr = param1->put_Direction(ADODB::adParamInput);
if (SUCCEEDED(hr))	hr = param1->put_Size( 9 );
if (SUCCEEDED(hr))	hr = param1->put_Name(_bstr_t(L "properties" ));

hr = param2.CreateInstance(__uuidof(ADODB::Parameter));
if (SUCCEEDED(hr))	hr = param2->put_Type(ADODB::adInteger);
if (SUCCEEDED(hr))	hr = param2->put_Value(_variant_t(f_id));
if (SUCCEEDED(hr))	hr = param2->put_Direction(ADODB::adParamInput);
if (SUCCEEDED(hr))	hr = param2->put_Size(- 1 );
if (SUCCEEDED(hr))	hr = param2->put_Name(_bstr_t(L "fname_id" ));

ADODB::Parameters* params = NULL;
if (SUCCEEDED(hr))	hr = cmd->get_Parameters(& params);
if (SUCCEEDED(hr))	hr = params->Append(param1);
if (SUCCEEDED(hr))	hr = params->Append(param2);
		
if(params) params->Release();
if(param1) param1->Release();
if(param2) param2->Release();

try
{
    cmd->Execute(&vtMissing,&vtMissing,ADODB::adCmdStoredProc);
}
catch(_com_error ex)
{
   AdoErrHandler(theApp.m_assess_cn);
   return;
}			

========================================================================
...
Рейтинг: 0 / 0
Неверная передача параметра хранимой процедуры
    #32189218
Sirios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну ты лобанул, чувак!

А инстансы на кой в параметрах?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Неверная передача параметра хранимой процедуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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