Здравствуйте, Чиполино, Вы писали:
Ч> Вроде бы все должно работать, но не работает.
Ч>Если кто знает ответ буду просить хелпа.
Оно?
http://www.rsdn.ru/?forum/?mid=120628Автор: Merle
Дата: 25.10.02
P. S. SET NOCOUNT ON в начало процедуры поставь...
Доброго времени суток All.
Может подскажет кто, как почикать траблу.
Есть stored procedure
CREATE PROCEDURE test @p0 int, @p1 int, @p2 varcar(10), @p3 int
AS
insert TestTable ( myID, f1, f2, f3 ) values ( @p0, @p1, @p2, @p3 )
select * from TestTable
GO
Код где я ее зову выглядит так:
pCon.CreateInstance( __uuidof(Connection) );
_bstr_t strCnn("Provider=sqloledb;Data Source=MyServer;Initial Catalog=pubs;Trusted_Connection = Yes");
pCon->ConnectionTimeout = 5;
pCon->Open(strCnn,"sa","",adConnectUnspecified);
pCmd.CreateInstance(__uuidof(Command));
pCmd->ActiveConnection = pCon;
pCmd->CommandType = adCmdStoredProc;
pCmd->CommandText = "test";
pCmd->CommandTimeout = 5;
_ParameterPtr pPar;
pPar.CreateInstance(__uuidof(Parameter));
VARIANT vP[4];
vP[0].vt = VT_I4;
vP[0].lVal = 1;
pPar = pCmd->CreateParameter( "p0", adInteger, adParamInput, sizeof(int), vP[0] );
pCmd->Parameters->Append( pPar );
vP[1].vt = VT_I4;
vP[1].lVal = 1;
pPar = pCmd->CreateParameter( "p1", adInteger, adParamInput, sizeof(int), vP[1] );
pCmd->Parameters->Append( pPar );
vP[2].vt = VT_BSTR;
_bstr_t t2 = "что нибудь";
vP[2].bstrVal = t2;
pPar = pCmd->CreateParameter( "p2", adBSTR, adParamInput, sizeof(BSTR), vP[2] );
pCmd->Parameters->Append( pPar );
vP[3].vt = VT_I4;
vP[3].lVal = 1;
pPar = pCmd->CreateParameter( "p3", adInteger, adParamInput, sizeof(int), vP[3] );
pCmd->Parameters->Append( pPar );
pRst = pCmd->Execute(NULL,NULL,NULL);
В результате я получаю рекордсет в состоянии closed
Подскажите, что делать.
В подобном случае, при возврате вместо select параметра stored procedure,
если присваиваю параметру значение до insert то я его получаю, если после,
то дулю с маком. Вроде бы все должно работать, но не работает.
Если кто знает ответ буду просить хелпа.
Bye.
Здравствуйте, Чиполино, Вы писали:
Ч>Здравствуйте, Merle,
Ч>Спасибо.
Можно было еще pRst->Next вызвать для получения твоего ненаглядного рекордсета.