REVISIÓN: Access infracción se produce cuando se realiza una llamada RPC que incluye un parámetro valor de bits que no es válido

Seleccione idioma Seleccione idioma
Id. de artículo: 314128 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Nº DE ERROR: 356323 (SHILOH_BUGS)
Expandir todo | Contraer todo

En esta página

Síntomas

En el Service Pack 2 (SP2) de SQL Server 2000, cuando ejecute una traza del Analizador de SQL que incluye sucesos RPC ( RPC: iniciando o RPC: completado ), una instrucción que incluya un parámetro de bits que tiene un valor que es mayor que 9, se produce una infracción de acceso en CNetInputBuffer::Init .

En el Service Pack 1 (SP1) de SQL Server 2000, se trunca la traza y recibe un mensaje de error en el Analizador de SQL, pero se produce ninguna infracción de acceso en SQL Server. El tipo de datos de la columna de la tabla es irrelevante; sólo el tipo de datos del parámetro es relevante para este problema.

Nota : la columna de tabla puede ser otro tipo distinto de bits .

SQL Server 2000 SP2 (8.00.534) genera el siguiente volcado de pila:
   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)
				

Solución

Información de Service Pack

Para resolver este problema, consiga el Service Pack más reciente para Microsoft SQL Server 2000. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
290211Cómo obtener el Service Pack más reciente de SQL Server 2000

Información de revisiones

Nota : la revisión siguiente se creó antes del lanzamiento de Service Pack 3 de Microsoft SQL Server 2000.

La versión en inglés de esta revisión tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   Date         Version    Size     File name
   ------------------------------------------------

   12-DEC-2001  8.00.552   7,442,513  Sqlservr.exe
				
Nota : debido a la interdependencia entre archivos, el más reciente revisión o característica que contiene estos archivos quizás contenga también archivos adicionales.


Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:". Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Más información

Para reproducir la infracción de acceso, ejecute una traza del Analizador de SQL que incluye al menos uno de los eventos RPC ( RPC: iniciando o RPC: finalización ), y ejecute el siguiente código de 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);
	}
				
Esta infracción de acceso se produce cuando el servidor se está ejecutando SQL Server 2000 SP2, la versión de herramienta de Analizador de SQL no afecta a este problema.

Propiedades

Id. de artículo: 314128 - Última revisión: jueves, 13 de febrero de 2014 - Versión: 5.4
La información de este artículo se refiere a:
  • Service Pack 2 de Microsoft SQL Server 2000
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbbug kbfix kbsqlserv2000presp3fix KB314128 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 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