Сообщение 7302 уровень 16 состояние 1

Обновлено: 05.07.2024

Вот что я пробовал:

Сначала я побежал .

Вслед за . без любви.

Я изменил код так, чтобы он читал Microsoft.ACE.OLEDB.12.0 , поскольку я тоже это видел, но по-прежнему не люблю.

Я также проверил разрешения C: \ Users \ MSSQLSERVER \ AppData \ Local \ Temp и C: Windows \ ServiceProfiles \ NetworkService \ AppData \ Local, которые предоставили полный доступ к следующим компонентам: Система, MSSQLSERVER и Администраторы, Сеть Сервис (по последнему слову).

До сих пор нет любви.

Наконец, я попытался перейти на 32-разрядную версию Microsoft Access Database Engine, которая по-прежнему не работает.

Как разрешить "Не удалось найти устанавливаемый ISAM". ошибка для поставщика OLE DB "Microsoft.ACE.OLEDB.12.0"

Как разрешить "Не удалось найти устанавливаемый 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',

'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:

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\work\TestData.xlsx;Extended Properties="Excel 12.0 XML;HDR=YES";

Я также выполнил соответствующую конфигурацию SQL Server, чтобы разрешить распространенный запрос OPENROWSET:

sp_configure 'show advanced options', 1

sp_configure 'Ad Hoc Distributed Queries', 1

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1

. тогда ошибка изменится на "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-разрядные.

"Microsoft.Jet.OLEDB.4.0" работает с использованием T-SQL, но "Microsoft.ACE.OLEDB.12.0" этого не делает.

"Microsoft.ACE.OLEDB.12.0" работает с помощью мастера "Импорт данных. " (насколько я могу сказать из сохраненного файла задания SSIS).

Настройка свойств "AllowInProcess" и "DynamicParameters" на "1" изменяет ошибку на "Unspecified error". (Это шаг вперед?!)

tsql excel-2007 oledb openrowset isam

Martin_ATS 10 янв. '12 в 2:48

ПОПРОБУЙТЕ это, это может вам помочь:

установите path и strFileType согласно требованию

// 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\"";

Sagar R 30 янв. '14 в 9:42

Хай также столкнулся с такой ситуацией, я решил ее

string ConeectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source -qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">

+ ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"");

OleDbConnection oconn = new OleDbConnection(ConeectionString);

user4049619 17 сент. '14 в 9:03

Не удалось найти устанавливаемый ISAM. Ошибка сервера в приложении

Соединение OLEDB с базой данных Access с паролем: "Не удалось найти устанавливаемый ISAM"

сохраняйте это исключение System.Data.OleDb.OleDbException(0x80004005) :?

Поставщик Microsoft.ACE.OLEDB.12.0 больше не может открывать .mdb под Windows 8

Как узнать причину разрешения поставщика OLE на SQL Server?

Агент SQL Server не может выполнить запрос OPENROWSET, но я могу - "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" сообщила об ошибке

Экспорт данных из SQL Server 2014 в Excel

Проверьте это: Msg 7302, уровень 16, состояние 1, строка 1 Невозможно создать экземпляр поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)"

В принципе, вы переходите к

Панель управления > Администрирование > Службы компонентов

Службы компонентов > Компьютеры > Мой компьютеp > Конфигурация DCOM

Свойствa > Безопасность > Разрешения запуска и активации

добавьте свое имя пользователя или "все", если вы предпочитаете

отметьте ВСЕ поля "разрешить" для нового пользователя/группы

и нажмите ОК на обеих страницах

Теперь посмотрите, работает ли ваша команда OpenRowSet/OpenDataSource

Hamid Sadeghian 19 мая '14 в 10:30

Это сработало для меня:

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.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 -qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">

Gurm 26 февр. '13 в 17:01

Я думаю, что ответ скрывается в информации о пакете SSIS, которую вы опубликовали. Новый формат файла xlsx хранит данные в формате XML вместо старого. Посмотрите на это снова. Он читает. Расширенные свойства -qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">

Не пропустите этот XML после стандартного материала. (Для чего это стоит, я также прочитал, что вам нужно "Excel 12.0 Macro" для подключения к файлу xslm.)

Итак, прошел через Интернет для решения, получил ссылку ниже

В приведенной выше ссылке они говорили, что нам нужно быть администратором, чтобы создать папку в папке C диска TEMP , поскольку OPENROWSET создает некоторые файлы или папку внутри папки TEMP .

Я делаю это на своем домашнем ПК и являюсь администратором. Все еще получаю ту же ошибку.

Сведения о SQL SERVER

Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64) 10 марта 2016 г. 16:49:45 Авторское право (c) Microsoft Corporation Enterprise Evaluation Edition (64-разрядная версия) для Windows 10 Pro 6.3 (сборка 10586:)

Будем очень признательны за любые указатели для решения проблемы.

Обновление: я уже настроил Ad Hoc Distributed Queries и

[Отредактировано 01.10.12, чтобы попытаться более четко сфокусировать внимание на аномалиях]

Следующий оператор T-SQL вызывает ошибку:

Однако, когда я пытаюсь использовать файл * .xls с поставщиком Microsoft.ACE.OLEDB.12.0, который должен быть обратно совместим с форматом * .xls, он снова терпит неудачу с той же ошибкой:

Я также выполнил соответствующую конфигурацию SQL Server, чтобы разрешить распределенный запрос OPENROWSET:

. тогда ошибка изменится на "Неопределенная ошибка":

Я пробовал это с несколькими файлами Excel на двух разных машинах / ОС (Windows Server 2003, Windows XP SP3). Обе машины 32-битные.

Читайте также: