![]() |
|
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"). Довольно удобно, если вы хотите иметь возможность менять строку подключения без влезания в обработку. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |