powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не работает хранимая процедура
3 сообщений из 3, страница 1 из 1
Не работает хранимая процедура
    #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
Не работает хранимая процедура
    #33999602
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Текст процедуры давай.
...
Рейтинг: 0 / 0
Не работает хранимая процедура
    #34000281
andy55555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст скинуть не могу. В общем она делает SET NOCOUNT ON, потом создает курсоры и таблицы, и чего - то в них пихает. Потом делает SELECT и все удаляет.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Не работает хранимая процедура
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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