Здравствуйте!
Возникла такая проблема:необходимо вызвать из кода программы хранимую процедуру и использовать возвращаемую ей выборку. Собственно процедура:
CREATE PROCEDURE [dbo].[CloneItem]
@OldItemID int
AS
BEGIN
INSERT INTO Items (GroupID, Name)
SELECT GroupID, 'Копия '+[Name]
FROM Items
WHERE Items.[ID] = @OldItemID
SELECT @@Identity as 'ID'
END
Вызываю изнутри в SQL Server EnterPrise процедура работает корректно, все возвращает, но при вызове из кода
m_pCommand->CommandType = adCmdStoredProc;
m_pCommand->CommandText = _bstr_t( "getBlockFilesID" );
_variant_t vt;
vt.vt = VT_I4;
vt.lVal = GroupID;
pParamGroupID = m_pCommand->CreateParameter( _bstr_t("ParamGroupID"), adBigInt/*adInteger*/, adParamInput,sizeof(long), vt);
m_pCommand->Parameters->Append( pParamGroupID );
m_pRecordset->State;
HRESULT hr = m_pRecordset->Open ((IDispatch *) m_pCommand, vtMissing, adOpenForwardOnly,
adLockReadOnly, adCmdStoredProc);
m_pRecordset->State;
m_pRecordset пуст!
Подскажите, в чем дело, плиз
Здравствуйте, Kostt, Вы писали:
K>Здравствуйте!
K>Возникла такая проблема:необходимо вызвать из кода программы хранимую процедуру и использовать возвращаемую ей выборку.
...
K>m_pRecordset пуст!
K>Подскажите, в чем дело, плиз
Мда... Поставте в начале процедуры SET NOCOUNT ON т.е.
CREATE PROCEDURE [dbo].[CloneItem]
@OldItemID int
AS
BEGIN
SET NOCOUNT ON
INSERT INTO Items (GroupID, Name)
...