Cómo depurar los proveedores OLE DB que se llama desde SQL Server 7.0

Seleccione idioma Seleccione idioma
Id. de artículo: 222123 - 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.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo proporciona sugerencias para depurar los proveedores OLE DB que se denominan de SQL Server versión 7.0. Además, SQL Server 7.0 puede realizar consultas distribuidas mediante las funciones OPENROWSET y OPENQUERY Transact SQL.

Más información

Especificar que el proveedor OLE DB se carga en el espacio de proceso de SQL Server.

De forma predeterminada, un proveedor OLE DB se invoca por SQL Server como un componente fuera de proceso. Para ello, con código auxiliar y proxy msdaps.dll que se proporciona con los componentes básicos de OLE DB. El proveedor OLE DB se aloja utilizando Dllhost.exe y es el proceso suplente para el proveedor OLE DB. Porque es difícil asociar al proceso Dllhost.exe el depurador de Visual C++, se recomienda que marque el proveedor como en proceso con fines de depuración. A continuación, puede asociar al depurador al proceso de SQL Server, Sqlservr.exe.
Para marcar un proveedor como en proceso, utilice uno de los dos procesos siguientes:
  1. Crear un servidor vinculado en SQL Server 7.0 que especifica el proveedor. En el Administrador corporativo de SQL, haga clic en Propiedades para el nuevo servidor vinculado, elija Opciones y a continuación, seleccione Permitir InProcess .
  2. Agregar el ProgID del proveedor a una clave del registro en: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Providers y agregue un valor DWORD bajo esa clave que es AllowInProcess con un valor de 1 .
Nota : cuando se ha marcado el proveedor como en proceso, a continuación, puede adjuntar a SQL Server y más fácil depuración el proveedor.

Adjuntar al depurador al proceso SQL Server

Se puede hacer si va a Generar . Haga clic en iniciar . Seleccione Depurar y haga clic en asociar al proceso en el entorno de desarrollo de Visual C++. Cuando se muestra la lista de procesos, seleccione Mostrar procesos del sistema y debería ver SQLSERVR aparecen en la lista. Este es el proceso de SQL Server. Seleccione el y el depurador se conectará al proceso. Ir al proyecto , a continuación, haga clic en configuración y seleccione la ficha Depurar y agregue la DLL de proveedor OLE DB a la lista de archivos DLL adicionales. Esto hace que la información de depuración para la DLL poder cargar se pueden establecer puntos de interrupción en el código de origen del proveedor OLE DB.

Proveedores que son invocado fuera de proceso de depuración

En ocasiones, un problema produce sólo cuando un proveedor OLE DB es invocado fuera de proceso. De forma predeterminada, SQL server invoca fuera de proceso de proveedores OLE DB. Puede cambiarse mediante los pasos descritos anteriormente en este artículo. Sin embargo, si debe depurar un problema que sólo se produce cuando el proveedor está fuera de proceso, deberá tener una forma para asociar al depurador al componente. Dos maneras de hacerlo son:
  1. Colocar un Sleep() en el constructor del objeto de origen de datos del proveedor para que tenga tiempo para asociar al depurador al proceso de Dllhost.exe, que es el suplente para el proveedor.
  2. Agregue código al proveedor para que el depurador se conectará automáticamente. Inserte el código siguiente en FinalConstruct() para el objeto de origen de datos:
    HRESULT FinalConstruct()
    {
       if (!IsDebuggerPresent())
       {
         char szDebuggerCmd[100];
         wsprintf(szDebuggerCmd, "C:\\Program Files\\Microsoft Visual Studio\\Common\\MSDev98\\Bin\\MSDEV -p %ld", (long)GetCurrentProcessId());
         PROCESS_INFORMATION pi;
         STARTUPINFO si;
         ZeroMemory(&si, sizeof(si));
         si.cb = sizeof(si);
         si.lpDesktop = "Winsta0\\Default";
    
         CreateProcess(NULL, szDebuggerCmd, NULL, NULL, TRUE, 0, NULL, NULL,  &si, &pi); 
         Sleep(5000);
         _asm int 3
       }
    
       return FInit();
    }
    						

Habilitar el seguimiento en el Analizador de consultas OLE DB

Puede tener información de seguimiento de OLE DB devuelto en el Analizador de consultas por el comando: traceon(7300) DBCC . Después de ejecutar una consulta distribuida, si el proveedor devolvió un error, se mostrará en la ventana de resultados de la información de diagnóstico.

Habilitar el seguimiento del Analizador de SQL Server OLE DB

La aplicación Analizador de SQL Server también proporciona las trazas de diagnósticos para las llamadas de OLE DB. Para obtener información sobre OLE DB errores y advertencias, haga lo siguiente:
  1. Inicie la aplicación Analizador de SQL Server 7.0 .
  2. Vaya a Herramientas y haga clic en Opciones . Haga clic en la ficha General y seleccione todas las clases de evento .
  3. Abrir un archivo de traza yendo al archivo y haga clic en nuevo o vaya al archivo y haga clic en Abrir y a continuación, vaya al archivo y haga clic en Propiedades .
  4. Se mostrará un cuadro de diálogo titulado Propiedades de traza . Haga clic en la ficha sucesos .
  5. Seleccione los eventos de error y advertencia y seleccione el evento OLEDB errores .
  6. Haga clic en la ficha Columnas de datos .
  7. Haga clic en las columnas siguientes:
    • EventClass
    • TextData
    • ApplicationName
    • NTUserName
    • Error
    • StartTime
    • EndTime
    • SPID
    • ClientProcessID
    • IntegerData
    • Duración
    • DataBaseName
    • DBUserName
    • Gravedad
    • Estado
Si el proveedor OLE DB devuelve un error a SQL Server, la traza muestra la llamada de OLE DB que falló y el valor devuelto.

Referencias

Para obtener más información, vea presentación técnica de soporte en la siguiente ubicación:
http://support.microsoft.com/servicedesks/webcasts/wc102699/WC102699.asp

Propiedades

Id. de artículo: 222123 - Última revisión: lunes, 3 de febrero de 2014 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Visual C++ 6.0 Enterprise
Palabras clave: 
kbnosurvey kbarchive kbmt kbdatabase kbhowto kbprovider KB222123 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): 222123

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