Параметры в SP(ADO::Comm.) не правильно передаются
От: NikFlipFlop  
Дата: 13.11.01 10:51
Оценка:
Сталкнулся с проблемой вызова хранимых процедур в MS SQL
Но как то они странно передаются похоже как по номеру их добавление в Parameters
В чем дело?
Вот код:
CREATE PROCEDURE [sv_Imp_AddGroup]
(@Survey_ID [int],
@Type_Name [nvarchar](50),
@Group_Name [nvarchar](50),
@Number [int],
@Start_Code [int],
@End_Code [int],
@Group_Level [int]=2)

AS
.............
adoAddParamIntInput(pCmd,L"Survey_ID",m_lSurveyID);
adoAddParamStringInput(pCmd,L"Type_Name",GrupType_name);
adoAddParamStringInput(pCmd,L"Group_Name",Group_Name);
adoAddParamIntInput(pCmd,L"Number",Group_N);
adoAddParamIntInput(pCmd,L"Start_Code",lStartCode);
adoAddParamIntInput(pCmd,L"End_Code",lEndCode);
adoAddParamIntInput(pCmd,L"Group_Level",2);
adoCmdUpdateInsert(pCmd,pConSQL,"sv_Imp_AddGroup");
.....................
long CImpMenDlg::adoCmdUpdateInsert(_CommandPtr &pCmd,_ConnectionPtr &Con, _bstr_t sp_name)
{

long ret_val=0;
_variant_t ret_v_val;

pCmd->ActiveConnection = Con;

pCmd->CommandText = sp_name;
pCmd->CommandType = adCmdStoredProc;

pCmd->Execute(NULL,NULL,adCmdStoredProc | adExecuteNoRecords);

ret_val=1;
return ret_val;
}

void CImpMenDlg::adoAddParamIntInput(_CommandPtr &pCmd,_bstr_t name, int val)
{
_variant_t vt_val;

vt_val.vt = VT_I2;
vt_val.iVal = val;

pCmd->Parameters->Append(pP=pCmd->CreateParameter (name,adInteger,adParamInput,sizeof(int),vt_val));


}
void CImpMenDlg::adoAddParamStringInput(_CommandPtr &pCmd,_bstr_t name, _bstr_t val)
{
pCmd->Parameters->Append(pP=pCmd->CreateParameter (name,adBSTR,adParamInput,val.length() ,val));

}

В аналайзере данные передаются как я их добовляю в Parametors
Но ведь это не правильно. Наверное я ошибся. Может кто то по опытнее подскажет в чем дело
Зарание спосибо всем
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.