Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1461
Здравствуйте!

100500-я тема про импорт из dbf....

Так работает:
select top 100 *
from OpenDataSource('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\eHealthProject\kladr\;Extended Properties=DBASE IV')...STREET


Так
select top 100 *
from OpenRowSet('Microsoft.ACE.OLEDB.12.0',
'Data Source=C:\eHealthProject\kladr\;Extended Properties=DBASE IV',
'SELECT * FROM STREET')
выдает ошибку:
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Could not find installable ISAM.".
Сообщение 7303, уровень 16, состояние 1, строка 1
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".


И когда пытаюсь подключиться к такому связанному серверу:
EXEC  sp_addlinkedserver 
        @server = 'Kladr', 
        @provider = 'Microsoft.ACE.OLEDB.12.0',
        @srvproduct = '',
        @datasrc ='C:\eHealthProject\kladr\',
        @provstr = 'Extended Properties="DBASE IV"'
получаю ошибку:
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Kladr".
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "Kladr" returned message "Could not find installable ISAM.". (Microsoft SQL Server, ошибка: 7303)


WTF??? Что я делаю неправильно?
17 апр 12, 07:14    [12425107]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
klimev
Member

Откуда:
Сообщений: 3
Нашел погуглив следующее решение.

--Сначала разрешения для драйвера
USE master
GO
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 

--Потом создаем линкед сервер
EXEC sp_addlinkedserver
   @server = 'dbf',
   @srvproduct=N'OLE DB Provider for ACE', 
   @provider = 'Microsoft.ACE.OLEDB.12.0',
   @datasrc = 'c:\kladr',
   @provstr = 'DBASE IV'


--Дополнительно надо настроить настройки безопасности одним из описанных ниже способов иначе будет ошибка 
/*
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "dbf" returned message "Cannot start your application. The workgroup information file is missing or opened exclusively by another user.".
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "dbf" reported an error. Authentication failed.
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 "dbf".

Solution to this problem is very simple. Simply follow steps -
1.Open the Management Studio and navigate to Server Objects and then to Linked Server.
2.Right click on your Linked Server Name, and click on Properties.
3.Go to Security Page. Now for solving above problem you have 2 option, you can try any of the below 2 option.

A] Select the option “Be made without using a security context” by clicking on radio button.

OR

B] Select the last option “Be made using this security context ”.
As soon as click on the radio button before “Be made using this security context ”, the“Remote login” and “With password” text boxes become active to be filled in.
Now in the “Remote login”, enter Admin as the login user. Leave the password text box as blank.
Now just click on OK, and now can run the query against your linked server without any error.
*/
14 май 12, 12:33    [12549158]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1461
klimev,

спасибо! но, ничего не изменилось (
22 май 12, 14:20    [12594699]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1461
klimev,

ой, заработало! @provstr был неправильный! спасибо!
22 май 12, 14:26    [12594781]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1461
А как насчет индексов? ) Это возможно вообще? )
23 май 12, 07:34    [12598206]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
valerygolub
Member

Откуда:
Сообщений: 3
А какой правильный? Провайдер нигде не документирован. Что надо написать в extended properties?
У меня не работает ни в какую. Говорит, что провайдер не инициализирован и плюс неопознанная ошибка.
И вообще, предназначен ли провайдер для работы с DBF. Вроде бы только Excel и Access?
9 авг 12, 16:40    [12989227]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
Ares_ekb
Member

Откуда: Екатеринбург
Сообщений: 1461
valerygolub,

Extended Properties не нужны. То, что написано у klimev правильно: @provstr = 'DBASE IV' Но попробовать не могу, всё на работе. С dbf нормально работает, я КЛАДР подключал.
10 авг 12, 18:47    [12995940]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
valerygolub
Member

Откуда:
Сообщений: 3
Ares_ekb,
Я экспериментировал на Win7 32b. Для АСE выдается сообщение, что не удалось проинициализировать адаптер. При этом VFPOLEDB работает без проблем. Сегодня проверил на Windows Server 2008 64b - оказалось, и правда работает. Если кому интересно, скриншоты моих экспериментов прилагаются.
13 авг 12, 10:26    [13002496]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
valerygolub
Member

Откуда:
Сообщений: 3
Ares_ekb,

Скриншоты экспериментов.

К сообщению приложен файл (test_ace.rar - 117Kb) cкачать
13 авг 12, 10:29    [13002519]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
AR159
Member

Откуда: Spring
Сообщений: 18
Апну ка я эту тему, ибо идеи кончились...

Ситуация аналогична ТС:
UNC пути не хочет
SELECT * FROM OPENDATASOURCE('Microsoft.ace.OLEDB.12.0',
'Data Source=\\Share\Folder;Extended Properties=dBASE IV')...[Book]


Локальный диск хочет, может, практикует:
SELECT * FROM OPENDATASOURCE('Microsoft.ace.OLEDB.12.0',
'Data Source=D:\Folder;Extended Properties=dBASE IV')...[Book]


Задание Агентом не хочет:
insert into [Book] (row)
SELECT row FROM OPENDATASOURCE('Microsoft.ace.OLEDB.12.0',
'Data Source=D:\Folder;Extended Properties=dBASE IV')...[Book]

ошибка
автор
Выполняется от имени пользователя: NT SERVICE\SQLSERVERAGENT.Не удалось проинициализировать объект источника данных поставщика OLE DB "Microsoft.ace.OLEDB.12.0" для связанного сервера "(null)". [SQLSTATE 42000] (Ошибка 7303) Поставщик OLE DB "Microsoft.ace.OLEDB.12.0" для связанного сервера "(null)" вернул сообщение "Неопознанная ошибка". [SQLSTATE 01000] (Ошибка 7412). Шаг завершился с ошибкой.

параметры установлены:
автор
Параметр конфигурации "show advanced options" изменен с 1 на 1. Выполните инструкцию RECONFIGURE для установки.
Параметр конфигурации "xp_cmdshell" изменен с 1 на 1. Выполните инструкцию RECONFIGURE для установки.

владелец задания - sa
чем рогатый не шутит - добавил [NT SERVICE\SQLSERVERAGENT] в db_owner Базы с целевой таблицей

LS по образу и подобию 12549158 завел - такая же история:
SELECT row FROM [dbf]...[Book]
работает, в Задании Агента не работает с точно такой же ошибкой как и с использованием [OPENDATASOURCE].

Я понимаю что ошибка на 99.1% в доступе, но где я еще не установил доступ я не имею ни малейшего представления...
24 май 18, 11:08    [21435422]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
AR159
Member

Откуда: Spring
Сообщений: 18
Как шаг задания следующий код выполняется без проблем, доступ к папке у [NT SERVICE\SQLSERVERAGENT] соответственно есть.
EXEC master..xp_cmdshell 'dir D:\SQLDatabase'
24 май 18, 11:16    [21435467]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
lisischko
Member

Откуда:
Сообщений: 11
AR159,

Здравствуйте. Попробуйте дать полные права на папку C:\Users\MSSQLSERVER\AppData\Local\Temp\
пользователю SQLSERVERAGENT.
10 июн 18, 14:01    [21483454]     Ответить | Цитировать Сообщить модератору
 Re: x64 + Microsoft.ACE.OLEDB.12.0 + DBF  [new]
AR159
Member

Откуда: Spring
Сообщений: 18
lisischko, прошу прощения за мое отсутствие. так и не победил вражину. написал на # приблуду и зашедулил. проблема осталась открытой но решение есть с костылём :( некрасиво
1 авг 18, 10:57    [21620436]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить