Ищу _Mandor_'a - очень надо.
От: Zoom Россия  
Дата: 01.10.04 05:48
Оценка:
Ищу _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 )
Re: Ищу _Mandor_'a - очень надо.
От: George Seryakov Россия  
Дата: 02.10.04 00:21
Оценка:
Здравствуйте, 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);
GS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.