|
|
|
Использование stored procedure MS SQL, возвращающей выборку
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Возникла такая проблема:необходимо вызвать из кода программы хранимую процедуру и использовать возвращаемую ей выборку. Собственно процедура: 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 пуст! Подскажите, в чем дело, плиз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 08:04 |
|
||
|
Использование stored procedure MS SQL, возвращающей выборку
|
|||
|---|---|---|---|
|
#18+
Совершенно верно. Этот пустой рекордсет - сообщение о кол-ве обработанных записей от оператора INSERT INTO. В процедуре (и триггере) первым оператором должен быть "SET NOCOUNT ON". В каждой! ------- SET NOCOUNT, без балды, сбережет вас от беды! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 11:18 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=113&tid=1353499]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 349ms |

| 0 / 0 |
