REVISIÓN: No hay registros pueden devolver cuando llame a la función SQLExecute para ejecutar una instrucción preparada y utiliza el controlador ODBC de cliente nativo de SQL en SQL Server 2008

Seleccione idioma Seleccione idioma
Id. de artículo: 957387 - Ver los productos a los que se aplica este artículo
Nº de error: 50003391 (revisión SQL)
Expandir todo | Contraer todo

En esta página

Síntomas

Utilice el controlador ODBC de cliente nativo de SQL en Microsoft SQL Server 2008. Si se llama a la función SQLExecute para ejecutar una instrucción preparada, no puede devolver ningún registro. Sin embargo, si utiliza el controlador ODBC de cliente nativo de SQL en SQL Server 2005 para llamar a la función SQLExecute , se devuelven registros.

Causa

Este problema puede producirse debido a un error en el controlador de ODBC de SQL Native Client en SQL Server 2008. Puede producirse si se llama a la función SQLBindParameter antes de cada función SQLExecute . Consulte la sección "Más información" para obtener más información.

Solución

Información de actualización acumulativa

La corrección para este problema se publicó por primera vez en la actualización acumulativa 1. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956717Paquete de actualización acumulativa 1 de SQL Server 2008
Nota Como las compilaciones son acumulativas, cada versión de revisión nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad incluidas con la anterior de SQL Server 2008. Microsoft recomienda que considere aplicar la versión de revisión más reciente que contenga este hotfix. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
956909SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

Información de revisiones

Hay una revisión compatible de Microsoft. Sin embargo, esta revisión se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a los sistemas que experimenten este problema específico. Esta revisión podría sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la siguiente actualización de software que contenga este hotfix.

Si la revisión está disponible para descarga, es hay una sección de "Descarga de revisión disponible" al principio de este artículo. Póngase en contacto si no aparece en esta sección, con los Microsoft cliente Servicios de y soporte técnico para obtener la revisión de.

Nota Si se producen problemas adicionales o si cualquier solución de problemas es necesario, quizás tenga que crear una solicitud de servicio independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con esta revisión específica. Para obtener una lista completa de números de teléfono de servicio de atención al cliente y soporte técnico o para crear una solicitud de servicio independiente, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota El formulario "Descarga de revisión disponibles" muestra los idiomas para que la revisión está disponible. Si no ve su idioma, es porque una revisión no está disponible para ese idioma.

Información de archivo

La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en 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 el elemento fecha y hora en el panel de control.
SQL Server 2008, ediciones de 32 bits
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempoPlataforma
Kfsqlncli.dll2007.100.1755.016,92006-Septiembre de 200815: 23x 86
Sqlncli10.dll2007.100.1755.02,459,67206-Septiembre de 200815: 40x 86
SQL Server 2008, ediciones de 64 bits
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempoPlataforma
Kfsqlncli.dll2007.100.1755.017,43206-Septiembre de 200820: 57x 64
Sqlncli10.dll2007.100.1755.03,158,55206-Septiembre de 200821: 12x 64

Solución

Para evitar este problema, llame a la función SQLBindParameter una vez. Cuando se llama a la función SQLBindParameter , debe asegurarse de que cumplen las condiciones siguientes:
  • El argumento ColumnSize es de tamaño suficiente.
  • El argumento Strlen_or_IndPtr se establece en SQL_NTS.
Una vez realizada la primera llamada a la función SQLExecute , se puede copiar el nuevo valor de cadena al argumento ParameterValuePtr .

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:".

Más información

Este problema se produce con la llamada SQLBindParameter . Si el búfer anterior coincide con el tamaño de la longitud del siguiente valor, no se emite un re-prepare de la instrucción. En el siguiente ejemplo de una traza ODBC, búfer del parámetro inicial coincide con la longitud del nuevo parámetro siguiente.

Parámetro inicial:
EC8 b6c EXIT SQLBindParameter con el código devuelto 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
FILO 1 <SQL_PARAM_INPUT>
FILO-8 <SQL_C_WCHAR>
FILO-9 <SQL_WVARCHAR>
SQLULEN 7
SWORD 0
PTR 0X028C8A98
SQLLEN 65535
SQLLEN * 0X050506F8 (14)
Nuevo parámetro siguiente:
EC8 b6c EXIT SQLBindParameter con el código devuelto 0 (SQL_SUCCESS)
HSTMT 05A8E260
UWORD 1
FILO 1 <SQL_PARAM_INPUT>
FILO-8 <SQL_C_WCHAR>
FILO-9 <SQL_WVARCHAR>
SQLULEN 14
SWORD 0
PTR 0X028C4F80
SQLLEN 65535
SQLLEN * 0X050506F8 (28)

Referencias

Para obtener más información acerca de la función SQLExecute , visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms713584(VS.85).aspx
Para obtener más información acerca de la función SQLBindParameter , visite el siguiente sitio Web de MSDN:
http://msdn.microsoft.com/en-us/library/ms710963(VS.85).aspx

Propiedades

Id. de artículo: 957387 - Última revisión: lunes, 17 de noviembre de 2008 - Versión: 2.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
Palabras clave: 
kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 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): 957387

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