REVISIÓN: Utilizar xp_sendmail con una cláusula COMPUTE causa una infracción de acceso

Seleccione idioma Seleccione idioma
Id. de artículo: 819955 - 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: 469145 (SHILOH_BUGS)
Expandir todo | Contraer todo

En esta página

Síntomas

Una llamada para el procedimiento almacenado extendido xp_sendmail puede provocar una infracción de acceso controlado cuando se cumplen todas las condiciones de las siguientes:
  • La llamada de xp_sendmail debe utilizar la consulta @ parámetro para enviar un conjunto de registros.
  • La consulta pasada a la consulta @ parámetro debe incluir una cláusula COMPUTE.
  • La consulta no debe devolver ninguna fila.
Éste es un ejemplo de una consulta que podría experimentar este problema:
 EXEC master..xp_sendmail 
 @recipients = 'recipient_email_address',
 @message = 'Total Sum of Job ID' ,
 @subject = 'Compute Sum',
 @width = 133 ,
 @query = 'SELECT emp_id, fname, minit, lname, job_id, job_lvl, pub_id FROM pubs.dbo.employee WHERE 1=0 COMPUTE SUM (job_id)'
Nota este problema es una regresión que sólo afecta a un pequeño número de versiones de posterior de SQL Server 2000 Service Pack 3 revisión. Este problema sólo se aplica a los equipos de servidor que ejecutan versiones de hotfix de SQL Server 2000 entre generación 780 y 807 (inclusive). Compruebe la versión del archivo Sqlmap70.dll que está en la carpeta BINN de la instancia de SQL Server para determinar si la instancia de se verá afectada. La versión del archivo afectado tiene los siguientes atributos:
   Date         Time   Version        Size           File name
   --------------------------------------------------------------
   28-Feb-2003  01:34  2000.80.778.0  176,696 bytes  Sqlmap70.dll
				

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 información adicional, 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 Esta revisión (compilación 811) sólo puede aplicarse a Pack 3 de 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         Time   Version         Size             File name
   -------------------------------------------------------------------------------
   26-Feb-2003  03:41  2000.80.777.0      29,244 bytes  Dbmslpcn.dll     
   08-Feb-2003  05:43                    786,432 bytes  Distmdl.ldf
   08-Feb-2003  05:43                  2,359,296 bytes  Distmdl.mdf
   30-Jan-2003  01:55                        180 bytes  Drop_repl_hotfix.sql
   07-Apr-2003  19:15  2000.80.801.0   1,557,052 bytes  Dtsui.dll        
   24-Apr-2003  02:51                    747,927 bytes  Instdist.sql
   30-Jan-2003  01:55                      1,402 bytes  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692 bytes  Msgprox.dll      
   01-Apr-2003  02:07                      1,873 bytes  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024 bytes  Odsole70.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904 bytes  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104 bytes  Pfutil80.dll     
   04-Apr-2003  21:27                  1,083,467 bytes  Replmerg.sql
   04-Apr-2003  21:53  2000.80.798.0     221,768 bytes  Replprov.dll     
   08-Feb-2003  06:40  2000.80.765.0     307,784 bytes  Replrec.dll      
   01-Apr-2003  02:23                  1,084,828 bytes  Replsys.sql
   16-Apr-2003  22:39                    115,892 bytes  Sp3_serv_uni.sql
   07-Apr-2003  17:44                     25,172 bytes  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672 bytes  Sqlevn70.rll
   24-Apr-2003  05:39  2000.80.811.0     176,696 bytes  Sqlmap70.dll     
   08-Feb-2003  06:40  2000.80.765.0      57,920 bytes  Sqlrepss.dll     
   24-Apr-2003  05:39  2000.80.811.0   7,540,817 bytes  Sqlservr.exe     
   08-Feb-2003  06:40  2000.80.765.0      45,644 bytes  Sqlvdi.dll       
   26-Feb-2003  03:41  2000.80.777.0      29,244 bytes  Ssmslpcn.dll     
   26-Feb-2003  03:41  2000.80.777.0      82,492 bytes  Ssnetlib.dll     
   28-Feb-2003  01:34  2000.80.778.0      98,872 bytes  Xpweb70.dll
Nota debido de dependencias de archivo, la revisión más reciente o característica que contiene los archivos pueden contener 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:" de este artículo. Este problema se corrigió por primera vez en Pack 4 de Microsoft SQL Server 2000.

Solución

Para solucionar el problema puede modificar la consulta para que sólo realiza una COMPUTE cuando hay filas que se va a devolver. Por ejemplo, puede modificar la consulta en la sección "Síntomas" manera para evitar el problema:
EXEC master..xp_sendmail 
 @recipients = 'recipient_email_address',
 @message = 'Total Sum of Job ID' ,
 @subject = 'Compute Sum',
 @width = 133 ,
 @query = 'IF EXISTS (SELECT 1  FROM pubs.dbo.employee WHERE 1=0)  SELECT emp_id, fname, minit, lname, job_id, job_lvl, pub_id FROM pubs.dbo.employee WHERE 1=0 COMPUTE SUM (job_id) ELSE SELECT ''No Data'' as [SUM]'

Propiedades

Id. de artículo: 819955 - Última revisión: miércoles, 26 de febrero de 2014 - Versión: 9.4
La información de este artículo se refiere a:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB819955 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): 819955

Enviar comentarios

 

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