Имя: Пароль:
1C
1С v8
ADODB.Connection: Не удается найти указанный поставщик
0 Игорь_МММ
 
08.01.20
12:50
Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.

Ранее работало, что-то изменилось в компе, уже не припомню .. Что пробовал:
1. разные строки подключения -
Connection = Новый COMОбъект("ADODB.Connection");
    СтрокаПодключения = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + Файл +
        "; Extended Properties = ""Excel $ver$.0;HDR=YES;IMEX=1"";";
    СтрокаПодключения12 = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = " + Файл +
        "; Extended Properties=""Excel 12.0 Xml;HDR=YES;IMEX=1"";";
      СтрокаПодключенияACE = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + Файл +
        ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""";        
    
    Попытка
        Connection.Open(СтрокаПодключения12);
    Исключение
        Попытка
            Connection.Open(СтрокаПодключенияACE);
        Исключение
            
            Для Версия = 8 По 16 Цикл
                //подключение к источнику данных
                ТекСтрокаПодключения = СтрЗаменить(СтрокаПодключения, "$ver$", Строка(Версия));
                Попытка
                    Connection.Open(ТекСтрокаПодключения);
                Исключение
                    ОписаниеОшибки = ОписаниеОшибки();
                КонецПопытки;
            КонецЦикла;              
        КонецПопытки;          
    КонецПопытки;

2. переустанавливал OFFICE 32/64 бит

что за "Не удается найти указанный поставщик. Вероятно, он установлен неправильно." ???
1 NorthWind
 
08.01.20
13:17
Provider=Microsoft.Jet.OLEDB.4.0;

Этот провайдер довольно старый и существует только в 32-бит варианте. Соответственно, приложение с ним у вас работать будет только 32-битное.
Если надо 64-бит, то рассматривайте провайдер ACE
2 NorthWind
 
08.01.20
13:20
вы можете просто создать где-нибудь в винде файл test.udl и запустить его на исполнение двойным щелчком. Откроется окно свойств microsoft data link. В звкладке "Поставщик данных" увидите всех провайдеров, которые у вас доступны в 64-битной среде (запускать надо именно в той винде где будет выполняться приложение). Джета 4 там точно не будет.
3 kubik_live
 
08.01.20
15:18
Попробуй Provider=vfpoledb.1

DBConn = Новый COMОбъект("ADODB.Connection");
    DBConn.Open("Provider=vfpoledb.1;Data Source="+PathFile+";Collating Sequence=Russian;");
4 Игорь_МММ
 
08.01.20
19:20
в итоге прокатило с такой строкой подключения:
СтрокаПодключенияACE = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" +  Файл + ";""";
причем вроде тоже пробовал только + ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;""" и результат 0.
(2) запустил файлик, поставщики есть но как понять как прописать постащика в строке подключения?
https://hostingkartinok.com/show-image.php?id=197af3ffec7c2018169e95f4ce42662f
5 NorthWind
 
08.01.20
19:54
(4) Provider=Microsoft.ACE.OLEDB.12.0; -- это как раз то про что я говорил в (1): "Если надо 64-бит, то рассматривайте провайдер ACE"
(2) Заполняете все свойства во всех закладках, в которых надо, и нажимаете ОК. После этого исходный файлик test.udl у вас уже будет ненулевого размера. Открываете его каким-нибудь редактором, который умеет юникодный текст, хотя бы стандартным блокнотом... и вуаля, видите в нем третьей по счету готовую строку подключения.
6 NorthWind
 
08.01.20
19:59
кстати, udl-файл можно использовать и вместо строки подключения, приложив его где-нибудь рядом со своей обработкой.
Тогда нужно будет написать при открытии DBConn.Open("FILE NAME=X:\Path\test.udl"). Довольно удобно, если вы хотите иметь возможность менять строку подключения без влезания в обработку.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший