REVISIÓN: El uso ineficaz de la cláusula LIKE con el proveedor OLEDB de Jet

Seleccione idioma Seleccione idioma
Id. de artículo: 311159 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando ejecuta una consulta SQL con el proveedor de OLEDB de Microsoft Jet 4.0 y aplicar una cláusula LIKE a una tabla vinculada de SQL Server, la cláusula LIKE no se reenvía correctamente el procesador de consultas Microsoft Jet a SQL Server. Esto produce una consulta general menos eficaz, porque todas las filas se recuperen de SQL Server localmente por primera vez Jet.

Tenga en cuenta que después de Jet recuperar localmente todas las filas, la cláusula LIKE se aplica internamente al resultado final antes de enviar el resultado al cliente, por lo que el resultado final es el mismo conjunto de filas.

Solución

Para resolver este problema, instale el service pack más reciente de Microsoft Jet 4.0. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
239114Cómo: Obtener el Service Pack más reciente para el motor de base de datos Microsoft Jet 4.0

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 ha corregido en Service Pack 6 (SP6) de Jet 4.0.

Más información

Pasos para reproducir este comportamiento

  1. Crear una nueva base de datos Microsoft Access denominada "C:\DB1.MDB".
  2. Abra C:\DB1.MDB en Microsoft Access y cree una tabla vinculada a la tabla autores que se encuentra en la base de datos pubs en el servidor SQL server. Mantiene el nombre de tabla vinculada de predeterminada de dbo_authors .
  3. Ejecute la siguiente consulta utiliza Microsoft Jet OLEDB proveedor 4.0 en la base de datos de Access C:\DB1.MDB.
    SELECT * from dbo_authors WHERE state LIKE 'M%'
    					
Si supervisa el back-end servidor SQL server mediante la utilidad Analizador de SQL Server, verá que las siguientes instrucciones SQL se envían a SQL Server, que indica que el optimizador de consultas Microsoft Jet está aplicando el criterio LIKE después de recuperar todas las filas de la tabla authors . Observe que se quitaron todas las instrucciones SQL no críticas y que han agregado comentarios para describir las distintas instrucciones SQL enviadas por Microsoft Jet.
-- This is sent first by Jet to fetch all key values.  
-- Note that WHERE state LIKE 'M%' is not applied here.

SELECT au_id, state FROM authors 

-- This retrieves a single row using the first key value retrieved by the
-- above SQL statement. Jet will apply the LIKE clause internally
-- before retrieving the first row.

SELECT au_id,au_lname,au_fname,phone,address,city,state,zip,contract  
FROM dbo.authors WHERE au_id = @P1 
				
si ejecuta la consulta SQL idéntica con el controlador ODBC de Microsoft Access, la cláusula LIKE se reenvía correctamente a SQL Server en la primera instrucción de SQL, lo que una consulta general mucho más eficaz.

Propiedades

Id. de artículo: 311159 - Última revisión: miércoles, 12 de octubre de 2005 - Versión: 1.4
La información de este artículo se refiere a:
  • Microsoft OLE DB Provider for Jet 4.0
Palabras clave: 
kbmt kbhotfixserver kbqfe kbbug kbfix kbqfe KB311159 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): 311159
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

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