Error -2147467259 al usar el "SQL Toolkit" o el "Database Connectivity Toolkit" en Windows 7 64-bits

Actualizado el Dec 22, 2023

Reportado en

Software

  • LabVIEW
  • LabVIEW Database Connectivity Toolkit
  • LabWindows/CVI
  • LabWindows/CVI SQL Toolkit

Sistema Operativo

  • Windows

Detalles del problema

Estoy utilizando LabVIEW o LabWindows / CVI de 32 bits en Windows 7 de 64 bits, y recibo el siguiente error de las herramientas de DB Open Connection VI:

Error -2147467259 (0x80004005)
ADO Error: Exception occurred in Microsoft OLE DB Provider for ODBC driver. 
Microsoft ODBC Driver manager: The specified DSN contains an architecture mismatch between the driver and application in NI-Database-API.lvlib


¿Por qué recibo este error y cómo lo resuelvo?

Solución

Este error se produce porque la versión de 64 bits de odbcad32.exe , el programa Administrador de fuente de datos ODBC, se usó para configurar el Nombre de la fuente de datos (DSN) en la base de datos cuando la versión de 32 bits del programa Administrador de fuente de datos ODBC debería haberse usado.

Primero asegúrese de tener instalada la versión de MySQL de 32 bits. Habrá dos archivos diferentes llamados odbcad32.exe en Windows 7 x64. Aunque ambos se denominan odbcad32.exe , uno es de 64 bits y el otro de 32 bits. Puede saber cuál es de 64 bits y cuál de 32 bits por su ubicación de directorio:
  • La versión de 64 bits está en <Windows> / System32
  • La versión de 32 bits está en <Windows> / SysWOW64

Hay dos opciones para corregir el error:
  1. Arreglar la configuración de ODBC. Para hacer esto, abra la versión de 64 bits de odbcad32.exe , elimine la configuración de la base de datos, luego abra la versión de 32 bits como administrador y configure la base de datos allí.
  2. Cambie su código de LabVIEW o LabWindows / CVI para usar la UDL con la cadena de conexión exacta. Puede aprender más sobre esto en ¿Cómo configuro un archivo de enlace de datos de Microsoft (UDL) a través de LabVIEW? (en inglés)

Información adicional

La aplicación LabVIEW o LabWindows / CVI de 32 bits está intentando usar el DSN creado por el odbcad32.exe de 64 bits para conectarse a la base de datos, y esto no es arquitectónicamente posible. Este es el desajuste de arquitectura mencionado en el mensaje de error. La aplicación LabVIEW o LabWindows / CVI de 32 bits solo puede usar DSN creados con la versión de 32 bits de odbcad32.exe. Este problema se discute en el artículo sobre las fuentes de datos (en inglés)  de Microsoft Developer Network.