2013-06-27 4 views
0

Я пытаюсь подключиться к базе данных Access 2000 из SQL Server Management Studio. Мой текущий запрос:Использование OpenRowSet для подключения к базе данных Access 2000 из SQL Server Management Studio

sp_configure 'show advanced options', 1; 
RECONFIGURE; 
GO 
sp_configure 'Ad Hoc Distributed Queries', 1; 
RECONFIGURE; 
GO 

Select FName 
From 
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 
'\\bespin\Files\GDrive\CPros\Databases\Client.mdb'; 
'admin';'', 
Residents) 

Первоначально, я пытался использовать Microsoft.Jet.OLEDB.4.0 в качестве поставщика. Поскольку оба сервера фактически работают в 64-разрядных операционных системах, мне пришлось переключиться на Microsoft.ACE.OLEDB.12.0.

Выполнение этого запроса возвращает следующее сообщение об ошибке:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Access database engine cannot open or write to the file '\\bespin\Files\GDrive\CPros\Databases\Client.mdb'. It is already opened exclusively by another user, or you need permission to view and write its data.". 
Msg 7303, Level 16, State 1, Line 2 
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

Я проверил, что никто другой не имеет базу данных с открытым. Если я пытаюсь изменить имя пользователя и пароль к чему-либо административному доступу к базе данных, она возвращает следующее сообщение об ошибке вместо:

OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "Not a valid account name or password.". 
Msg 7399, Level 16, State 1, Line 2 
The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" reported an error. Authentication failed. 
Msg 7303, Level 16, State 1, Line 2 
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". 

В конце концов, что мне нужно, чтобы случиться, чтобы быть в состоянии выполнить ряд INSERT/UPDATE, чтобы поддерживать текущую базу данных, пока мы не заменим ее в нашем процессе конверсии. Что мне нужно изменить, чтобы эти запросы успешно выполнялись?

ответ

0

Указанный вами путь неправильный.

Это должно быть следующим примером для листа Excel:

select * from OPENROWSET(  
    'Microsoft.ACE.OLEDB.12.0','Excel 8.0;Database=D:\Band.Xlsx',   
    'SELECT * FROM [SheetName$]'); 
0

Try это, пожалуйста, обратите внимание пользователя Admin, он чувствителен к регистру

Select FName 
From 
OpenRowSet('Microsoft.ACE.OLEDB.12.0', 
'\\bespin\Files\GDrive\CPros\Databases\Client.mdb'; 
'Admin';'', 
Residents)