Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не работает хранимая процедура / 3 сообщений из 3, страница 1 из 1
20.09.2006, 08:15
    #33998450
andy55555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает хранимая процедура
Не работает хранимая процедура из MS sql server 2000. Вызывается через ado.
Пробовал 3 варианта, оно как бы срабатывает, но рекордсет возвращается пустой. Другие хранимые процедуры вызываются нормально. В чем тут дело?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
LPVOID CDbAcc::ExecConn(LPVOID pConn, LPCTSTR pszQuery)
{
	if(!::DBIsConnected()) return  0 ;
	if(!pConn) return  0 ;
	if(!pszQuery) return  0 ;
	if(_tcslen(pszQuery) <  1 ) return  0 ;

	ADOConnection * pCnn = (ADOConnection *)pConn;
	ADORecordset * pRs;

	/////собственно делание запроса

	if(FAILED(pCnn->Execute(_bstr_t(pszQuery), &(_variant_t(0L)), adCmdText, &pRs)))
	{
		try
		{
			pRs->Close();
			pRs->Release();
			return  0 ;
		}
		catch(...)
		{
			return  0 ;
		}
	}

	return pRs;
}

LPVOID CDbAcc::ExecRec(LPVOID pConn, LPCTSTR pszQuery)
{
	if(!::DBIsConnected()) return  0 ;
	if(!pConn) return  0 ;
	if(!pszQuery) return  0 ;
	if(_tcslen(pszQuery) <  1 ) return  0 ;

	ADOConnection * pCnn = (ADOConnection *)pConn;
	ADORecordset * pRs;

	if(FAILED(CoCreateInstance(CLSID_CADORecordset, 
		NULL, 
		CLSCTX_INPROC_SERVER, 
		IID_IADORecordset, 
		(LPVOID *)&pRs))) return  0 ;

	/////собственно делание запроса

	if(FAILED(pRs->Open(_variant_t(_bstr_t(pszQuery)), 
		_variant_t((IDispatch *)pCnn, true), 
		adOpenUnspecified,
		adLockUnspecified, 
		adCmdText)))
	{
		try
		{
			pRs->Close();
			pRs->Release();
			return  0 ;
		}
		catch(...)
		{
			return  0 ;
		}
	}
	return pRs;
}

BOOL CDbAcc::ExecComm(LPVOID pConn, LPVOID * ppRs, LPVOID * ppCmd, LPCTSTR pszQuery)
{
	if(!::DBIsConnected()) return  0 ;
	if(!pConn) return  0 ;
	if(!pszQuery) return  0 ;
	if(_tcslen(pszQuery) <  1 ) return  0 ;

	if(FAILED(CoCreateInstance(CLSID_CADOCommand, 
		NULL, 
		CLSCTX_INPROC_SERVER, 
		IID_IADOCommand, 
		(LPVOID *)ppCmd))) return  0 ;

	if(FAILED(((ADOCommand *)*ppCmd)->put_ActiveConnection(_variant_t((IDispatch *)pConn, true)))) _FToDb;
	if(FAILED(((ADOCommand *)*ppCmd)->put_CommandText(_bstr_t(pszQuery)))) _FToDb;

	if(FAILED(((ADOCommand *)*ppCmd)->Execute( 0 ,  0 , adCmdText, (ADORecordset **)ppRs))) _FToDb
//	if(FAILED(((ADORecordset *)*ppRs)->Requery())) _FToDb;

}
...
Рейтинг: 0 / 0
20.09.2006, 13:18
    #33999602
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает хранимая процедура
Текст процедуры давай.
...
Рейтинг: 0 / 0
20.09.2006, 15:38
    #34000281
andy55555
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не работает хранимая процедура
Текст скинуть не могу. В общем она делает SET NOCOUNT ON, потом создает курсоры и таблицы, и чего - то в них пихает. Потом делает SELECT и все удаляет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не работает хранимая процедура / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]