|
|||||||
Как разрешить "Не удалось найти устанавливаемый ISAM". ошибка для поставщика OLE DB "Microsoft.ACE.OLEDB.12.0"
Время создания: 10.10.2019 10:02
Текстовые метки: ISAM, VBA, ADO, Connection, Recordset
Раздел: Разные закладки - VBA - Access - Excel->Access
Запись: xintrea/mytetra_db_adgaver_new/master/base/1570690941lw9sotswv7/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Как разрешить "Не удалось найти устанавливаемый ISAM". ошибка для поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" Яндекс.Директ СМС рассылка без абонплаты! Решения LoRaWAN для ЖКХ и города Получите Допуск СРО! Акция - От 55т.р! Я пытаюсь импортировать данные из файлов Excel 2007 (.xlsx) в SQL Server 2008 с помощью команды T-SQL OpenRowset() с поставщиком OLE DB "Microsoft.ACE.OLEDB.12.0" , и я получаю постоянная ошибка "Не удалось найти устанавливаемый ISAM". Все аппаратные средства 32-разрядные. [Пересмотрено 1/10/12, чтобы попытаться более резко сосредоточиться на аномалиях) Следующий оператор T-SQL создает ошибку: SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\work\TestData.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES"', 'SELECT * FROM [Sheet1$]' ) Если я сохраню файл Excel в формате Excel 97-2003 (.xls) и использую более старый поставщик Microsoft.Jet.OLEDB.4.0 для импорта данных, он работает нормально. Это заставляет меня думать, что это не проблема безопасности или другая экологическая проблема. SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=C:\work\TestData.xls;HDR=YES', 'SELECT * FROM [Sheet1$]' ) Однако, когда я пытаюсь создать файл *.xls с поставщиком Microsoft.ACE.OLEDB.12.0, который должен быть обратно совместим с форматом *.xls, он снова терпит неудачу с той же ошибкой: SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\work\TestData.xls;Extended Properties="Excel 8.0;HDR=YES";', 'SELECT * FROM [Sheet1$]' ) Кроме того, интересно, когда я использую мастер SSMS "Импорт данных...", он отлично работает. Я сохранил вывод мастера импорта данных в виде пакета SSIS и просмотрел файл SSIS, чтобы попытаться выяснить, как он работает, и он успешно использует поставщика Microsoft.ACE.OLEDB.12.0. Это строка соединения из пакета SSIS: <DTS:Property DTS:Name="ConnectionString"> Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\work\TestData.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES"; </DTS:Property> Я также выполнил соответствующую конфигурацию SQL Server, чтобы разрешить распространенный запрос OPENROWSET: sp_configure 'show advanced options', 1 reconfigure GO sp_configure 'Ad Hoc Distributed Queries', 1 reconfigure GO Если я также установил следующие значения * sp_MSset_oledb_prop * (которые я нашел в сообщении где-нибудь)... USE [master] GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1 GO ... тогда ошибка изменится на "Unspecified error": OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Unspecified error". Msg 7303, Level 16, State 1, Line 1 Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". Однако я не уверен, что это ошибка восходящего или нисходящего потока. (Теперь он находит "устанавливаемый ISAM", но впоследствии не работает?) Я пробовал это с несколькими файлами Excel на двух разных машинах/операционных системах (Windows Server 2003, Windows XP SP3). Обе машины 32-разрядные. Я также попытался переустановить версии AccessDatabaseEngine.exe для Office 2007 и Office 2010 (http://www.microsoft.com/download/en/details.aspx?id=23734 и http://www.microsoft.com/download/en/details.aspx?id=13255, соответственно), безрезультатно. Подводя итог: "Microsoft.Jet.OLEDB.4.0" работает с использованием T-SQL, но "Microsoft.ACE.OLEDB.12.0" этого не делает. "Microsoft.ACE.OLEDB.12.0" работает с помощью мастера "Импорт данных..." (насколько я могу сказать из сохраненного файла задания SSIS). Настройка свойств "AllowInProcess" и "DynamicParameters" на "1" изменяет ошибку на "Unspecified error". (Это шаг вперед?!) Любые мысли? +18 tsql excel-2007 oledb openrowset isam Martin_ATS 10 янв. '12 в 2:48 источник поделиться 7 ответов ПОПРОБУЙТЕ это, это может вам помочь: установите path и strFileType согласно требованию string connString = ""; // string strFileType = Path.GetExtension(UpfileName.FileName).ToLower(); // string path = UpfileName.PostedFile.FileName; if (strFileType.Trim() == ".xls") { connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\""; } else if(strFileType.Trim() == ".xlsx") { connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\""; } +1 Sagar R 30 янв. '14 в 9:42 источник поделиться Хай также столкнулся с такой ситуацией, я решил ее решаемые string ConeectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + txtFlp.Text + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\""); OleDbConnection oconn = new OleDbConnection(ConeectionString);</b> 0 user4049619 17 сент. '14 в 9:03 источник поделиться другие ответы Связанные вопросы 2 Не удалось найти устанавливаемый ISAM. Ошибка сервера в приложении 1 Соединение OLEDB с базой данных Access с паролем: "Не удалось найти устанавливаемый ISAM" 0 сохраняйте это исключение System.Data.OleDb.OleDbException(0x80004005) :? 0 VB.NET Microsoft.ACE.OLEDB.12.0 - Выберите команду col Похожие вопросы 66 Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован 11 Поставщик Microsoft.ACE.OLEDB.12.0 больше не может открывать .mdb под Windows 8 1 Как узнать причину разрешения поставщика OLE на SQL Server? 1 Агент SQL Server не может выполнить запрос OPENROWSET, но я могу - "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" сообщила об ошибке 0 Экспорт данных из SQL Server 2014 в Excel 0 Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" вернул сообщение "Неопределенная ошибка" 0 "Не удалось найти Installable ISAM" С# Exception после чтения xls файла 0 Ошибка. Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере. 0 Поставщик "Microsoft.ACE.OLEDB.12.0" не зарегистрирован на локальном компьютере. Microsoft Excel 2016 0 не удалось найти устанавливаемый isam [vb.net] НАКОНЕЦ, решение! Проверьте это: Msg 7302, уровень 16, состояние 1, строка 1 Невозможно создать экземпляр поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" В принципе, вы переходите к Панель управления > Администрирование > Службы компонентов затем разверните Службы компонентов > Компьютеры > Мой компьютеp > Конфигурация DCOM находка MSDAINITIALIZE перейдите к Свойствa > Безопасность > Разрешения запуска и активации нажмите Настроить > Изменить... добавьте свое имя пользователя или "все", если вы предпочитаете отметьте ВСЕ поля "разрешить" для нового пользователя/группы и нажмите ОК на обеих страницах Теперь посмотрите, работает ли ваша команда OpenRowSet/OpenDataSource Благодаря Ramesh Babu Vavilla (vr.babu) с сайта social.technet.microsoft.com для ссылки 0 Hamid Sadeghian 19 мая '14 в 10:30 источник поделиться Это сработало для меня: SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=NO;Database=C:\temp\file.xlsx;',[sheetname$]) 0 Simon Turner 18 июл. '17 в 11:27 источник поделиться Попробуйте это SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'EXCEL 12.0;DataBase=C:\TEMP\test.xlsx;Extended Properties="EXCEL 12.0 Xml;HDR=YES', [Sheet1$]) 0 Gurm 26 февр. '13 в 17:01 источник поделиться Я думаю, что ответ скрывается в информации о пакете SSIS, которую вы опубликовали. Новый формат файла xlsx хранит данные в формате XML вместо старого. Посмотрите на это снова. Он читает... Расширенные свойства = "Excel 12.0 XML; HDR = YES Не пропустите этот XML после стандартного материала. (Для чего это стоит, я также прочитал, что вам нужно "Excel 12.0 Macro" для подключения к файлу xslm.) Попробуй. Странно, но, надеюсь, это работает. 0 IHateScreenNamesToo 27 апр. '12 в 18:16 источник поделиться Я решил с этим запросом: SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=NO;Database=D:\Filename.xlsx;', [SheetName$]) Кажется, sql не нравится раздел "Расширенные свойства"... |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|