Ищу _Mandor_'a — Надо позарез.
Дело в том, что у меня возникла абсолютно такая же проблема, как и у него (пост от 09,02,04 'Как из Visual C++ через ADO вызвать хранимку?').
А именно
////////////////////////////////////////
Как из Visual C++ через ADO вызвать хранимку и получить рекордсет, который она отдаст?
Дайте пример?
Вот это не прокатывает:
CommandPtr cmd(__uuidof(Command));
cmd->ActiveConnection = conn;
cmd->CommandType = adCmdStoredProc;
BSTR s = sProcName.AllocSysString();
cmd->CommandText = s;
cmd->CommandTimeout = 600;
_ParameterPtr p(__uuidof(Parameter));
p->Direction = adParamInput;
p->Type = adInteger;
p->Value = 151;
cmd->Parameters->Append((IDispatch*) p);
// Исполнение ADOCommand
_RecordsetPtr ds = cmd->Execute(NULL, NULL, adCmdStoredProc);
/////////////////////////////////////////////////
В этом посте нет решения этой проблемы. Но я ОЧЕНЬ НАДЕЮСЬ, что _Mandor_ ее решил.
Поэтому ПОЖАЛУЙСТА откликнитесь на мою просьбу.( zoomdm@ngs.ru )
Здравствуйте, Zoom, Вы писали:
Z>Дело в том, что у меня возникла абсолютно такая же проблема, как и у него (пост от 09,02,04 'Как из Visual C++ через ADO вызвать хранимку?').
В общем, там еще коннекшн наужно открывать. Ну, примерно так:
_ConnectionPtr pConnection = NULL;
_CommandPtr pCmdByRoyalty = NULL;
_RecordsetPtr pRstByRoyalty = NULL;
_RecordsetPtr pRstAuthors = NULL;
_ParameterPtr pPrmByRoyalty = NULL;
hr = pConnection->Open(strCnn,"","",adConnectUnspecified);
pCmdByRoyalty.CreateInstance(__uuidof(Command));
pCmdByRoyalty->ActiveConnection = pConnection;
pCmdByRoyalty->CommandText = "byRoyalty";
pCmdByRoyalty->CommandType = adCmdStoredProc;
pCmdByRoyalty->CommandTimeout = 15;
//Assign Integer value
vtroyal.vt = VT_I2;
vtroyal.iVal = intRoyalty;
TESTHR(pPrmByRoyalty.CreateInstance(__uuidof(Parameter)));
pPrmByRoyalty->Type = adInteger;
pPrmByRoyalty->Size = 3;
pPrmByRoyalty->Direction = adParamInput;
pPrmByRoyalty->Value = vtroyal;
pCmdByRoyalty->Parameters->Append(pPrmByRoyalty);
//Create a recordset by executing a command.
pRstByRoyalty = pCmdByRoyalty->Execute(NULL,NULL,adCmdStoredProc);