Я не могу подключиться к DSN с Perl Win32: ODBC - PullRequest
1 голос
/ 22 января 2020

Фон: Я использую Windows 10 и Perl v5.26.1. Я унаследовал некоторый код Perl, который необходимо подключить к базе данных. Ранее это работало с использованием Windows 7 и Perl 5.16.3.

Код использует Win32 :: ODB C для подключения к базе данных. Я получаю следующую ошибку:

Ошибка подключения: [911] [] "[Microsoft] [ODB C Driver Manager] Указанный DSN содержит несоответствие архитектуры между драйвером и приложением"

Я использую 64-битную версию Perl и пытаюсь подключиться к 32-битной базе данных MS Access, но я предполагаю, что Win32 обрабатывает это. Кроме того, такая же настройка работала в настройке Windows 7.

Я могу подключиться к базе данных с помощью администратора источника данных ODB C.

В качестве попытки определить проблема, которую я пытался:

use strict;
use Win32::ODBC;

print "DataSources\n";

my (%dsn, $key) = Win32::ODBC::DataSources();

foreach $key (sort keys %dsn) { 
    print "$key\n"; 
}

print "Done\n";

Это привело к

DataSources
Done

Так что я не нахожу никаких источников данных. Запуск одного и того же кода на компьютере Windows 7 создает источники данных.

Запуск Get-OdbcDsn в Powershell создает список источников данных.

Вопрос: Почему Я не могу увидеть источники данных, используя Perl в v5.26.1, используя Windows 10?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...