Исправление: При вызове RPC, возникает нарушение прав доступа включает немного не является допустимым значением параметра

Переводы статьи Переводы статьи
Код статьи: 314128
ОШИБКА #: 356323 (SHILOH_BUGS)
Развернуть все | Свернуть все

В этой статье

Проблема

В SQL Server 2000 с пакетом обновления 2 (SP2), при запуске SQL Profiler трассировку, которая включает в себя (RPC) событияRPC:Starting-или-RPC:Completed), инструкцию, которая включает в себябитпараметр, который имеет значение, превышающее 9 вызывает нарушение прав доступа вCNetInputBuffer::Init.

В SQL Server 2000 пакет обновления 1 (SP1) трассировка усекается и появляется сообщение об ошибке в приложении SQL Profiler, но не возникает нарушение прав доступа в SQL Server. Тип данныхTABLEстолбец является не имеет значения; только тип данных параметра относится к данной проблемы.

Примечание.:TABLEстолбец может быть другой тип, отличный отбит.

SQL Server 2000 SP2 (8.00.534) создает следующее содержимое стека:
   Short Stack Dump

   00410B23 Module(sqlservr+00010B23) (CNetInputBuffer::Init+0000005C)
   004B7422 Module(sqlservr+000B7422) (CNetInputStream::FAddEventFragment+0000005E)
   00639EB1 Module(sqlservr+00239EB1) (PcnisGetRpcTraceInput+000004BB)
   0063A2C1 Module(sqlservr+0023A2C1) (PostRPC+000000AB)
   00605A07 Module(sqlservr+00205A07) (execrpc+0000095E)
   00437E05 Module(sqlservr+00037E05) (execute_rpc+00000019)
   00410E73 Module(sqlservr+00010E73) (process_commands+00000210)
   41073379 Module(UMS+00003379) (ProcessWorkRequests+0000024A)
   41073071 Module(UMS+00003071) (ThreadStartRoutine+000000BD)
   7800A27B Module(MSVCRT+0000A27B) (beginthread+000000CE)
   77E8758A Module(KERNEL32+0000758A) (SetFilePointer+0000018A)
				

Решение

Сведения о пакете обновления

Чтобы решить эту проблему, получите последний пакет обновления для Microsoft SQL Server 2000. Для получения дополнительных сведений обратитесь к следующей статье Базы Знаний Майкрософт::
290211Как получить последний пакет обновления для SQL Server 2000

Сведения об исправлении

Примечание.: Указанное ниже исправление было создано до выпуска пакета обновления 3 для Microsoft SQL Server 2000.

Английская версия данного исправления содержит версии файлов, приведенные в следующей таблице, или более поздние.. Дата и время для файлов указаны во всеобщем скоординированном времени (UTC).. При просмотре сведений о файле, время изменяется на местное.. Чтобы узнать разницу между временем по Гринвичу и местным временем,Часовой поясвкладки в окне «Дата и время» панели управления.
   Date         Version    Size     File name
   ------------------------------------------------

   12-DEC-2001  8.00.552   7,442,513  Sqlservr.exe
				
Примечание.: Из-за зависимостей между файлами последние исправления или функция, которая содержит эти файлы могут содержать дополнительные файлы.


Статус

Корпорация Майкрософт подтверждает, что это проблема в продуктах Майкрософт, перечисленных в разделе «Применяется к».. Впервые эта проблема была исправлена в SQL Server 2000 с пакетом обновления 4.

Дополнительная информация

Чтобы воспроизвести появление нарушение прав доступа, запуска трассировки приложения SQL Profiler, которая содержит по крайней мере одно из событий (RPCRPC:Starting-или-RPC:Completed), а затем запустить следующий код C:
	long int myBitStatus=0xff; //Invalid value

	SQLRETURN   retcode;
	SQLHENV     henv = NULL;
	SQLHDBC     hdbc = NULL;
	SQLHSTMT    hstmt = NULL;

	PTSTR       szDataSource = _T("localserver");
	PTSTR       szUID = _T("sa");
	PTSTR       szPWD = _T("sa_password");

	if (SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv) == SQL_ERROR)
		return 1;
	SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*) SQL_OV_ODBC3,
	SQL_IS_INTEGER);

	if (SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc) == SQL_ERROR)
		return 1;

	if (SQLConnect(hdbc, (SQLTCHAR*) szDataSource, SQL_NTS,
	(SQLTCHAR*) szUID, SQL_NTS, (SQLTCHAR*) szPWD, SQL_NTS) == SQL_ERROR)
		return 1;

	if (SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt) == SQL_ERROR)
		return 1;

	retcode = SQLAllocHandle(hstmt, hdbc, &hstmt);
	retcode=SQLBindParameter(hstmt, 
				 1, 
				 SQL_PARAM_INPUT, 
				 SQL_C_BIT,
				 SQL_BIT, 
				 1, 
				 0, 
				 &myBitStatus, 
				 0, 
				 &myBitStatus);

	if (retcode == SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
	{
		retcode = SQLExecDirect (hstmt, "SELECT au_id FROM pubs.dbo.authors WHERE contract = ?", SQL_NTS);
	}
				
Это нарушение прав доступа при выполнении сервером SQL Server 2000 с пакетом обновления 2; версия средства SQL Profiler не влияет на эту проблему.

Свойства

Код статьи: 314128 - Последний отзыв: 23 ноября 2010 г. - Revision: 2.0
Ключевые слова: 
kbhotfixserver kbqfe kbbug kbfix kbsqlserv2000presp3fix kbmt KB314128 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:314128

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com