Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Неверная передача параметра хранимой процедуры / 2 сообщений из 2, страница 1 из 1
23.06.2003, 13:47
    #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
23.06.2003, 14:50
    #32189218
Sirios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Неверная передача параметра хранимой процедуры
Ну ты лобанул, чувак!

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


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