2012-01-21 2 views
1

У нас есть некоторые веб-службы (написанные в .NET WCF), которые в настоящее время попадают в базу данных Microsoft SQL Server для извлечения/обновления данных. Теперь у нас есть требование также получать/обновлять данные из базы данных Microsoft Access. База данных Access в настоящее время используется рядом устаревших систем, поэтому мы не можем ее преобразовать в базу данных Microsoft SQL Server - мы застряли в базе данных Access.Использование базы данных доступа с Microsoft SQL Server

Мой вопрос: есть ли способ связаться с базой данных Access через «Microsoft SQL Server» (чтобы мы могли выдавать команды T-SQL, а MS SQL Server обрабатывал все базовое сопоставление для запроса Доступ к базе данных?) Или лучше просто связываться с базой данных Access через ADO.NET, раскрывая расположение базы данных Access в сетевом ресурсе? Есть ли у кого-нибудь предложения, которые мы могли бы попробовать?

Спасибо всем.

ответ

5

Что о сохранении приложение устаревшего доступа, но перемещение таблиц и данных из приложения Access?

Доступ является отличным интерфейсом для SQL-сервера. Когда вы создаете приложение с Access, как и большинство других инструментов разработки, вам нужно выбрать, какой механизм данных и система баз данных вы собираетесь использовать с Access. Доступ имеет встроенную поддержку для JET-сервера данных (теперь называется ACE). Доступ имеет встроенную поддержку для SQL-сервера. И доступ 2010 не только поддерживает встроенную поддержку SharePoint, но и SQL Auzure.

Итак, вы можете подумать о переносе данных, которые Access теперь использует на SQL-сервер, и очень мало, если какие-либо изменения необходимо внести в приложение доступа. Таким образом, функция доступа Access удовлетворена, если таблицы находятся в файле (файл mdb или accdb) или на сервере, подобном SQL-серверу, и фактически для таблиц, которые находятся в SharePoint, Access фактически использует веб-службы для обновления этих данных в SharePoint. Однако во всех случаях стандартный код, формы, код VBA и даже используемый SQL не нуждаются в изменении.

Поэтому я не хочу здесь приложить попытку подключить SQL-сервер к некоторому «файлу», сидящему в папке, но просто подключиться к SQL-серверу для обновления таблиц, и нет необходимости «передавать», данные между системами будут существовать больше.

+0

Я делал это несколько раз, и все получилось хорошо. – RQDQ

+0

Привет Albert, устаревшие системы являются внешними по отношению к самому доступу, но подключаются к базе данных Access для извлечения данных через ADO.NET. Если мы переместим таблицы из Access, разве это не нарушит эти существующие системы (тем, что они не смогут получить данные из Access снова, но им потребуется обновление, чтобы прочитать их с db MS SQL Server)? – DotNetDeveloper

+1

@DotNetDeveloper Access имеет концепцию под названием Связанные таблицы, которые являются удаленными таблицами, которые похожи на обычные таблицы Access, за исключением удаленных. Access выполняет все операции между Access и SQL Server. –

2

Use a linked server:

Связанный сервер обеспечивает доступ к распределенным гетерогенным запросам к источникам данных OLE DB. После того, как связанный сервер создается с помощью sp_addlinkedserver, распределенные запросы могут быть запущены на этом сервере.

Если вы только когда-либо работает на 32-битной платформе:

EXEC sp_addlinkedserver 
    @server = N'SEATTLE Mktg', 
    @provider = N'Microsoft.Jet.OLEDB.4.0', 
    @srvproduct = N'OLE DB Provider for Jet', 
    @datasrc = N'C:\MSOffice\Access\Samples\Northwind.mdb'; 

Или, если вам не придется беспокоиться о 64-битной, а также:

EXEC sp_addlinkedserver 
    @server = N'SEATTLE Mktg', 
    @provider = N'Microsoft.ACE.OLEDB.12.0', 
    @srvproduct = N'OLE DB Provider for ACE', 
    @datasrc = N'C:\MSOffice\Access\Samples\Northwind.accdb'; 
+0

Спасибо за ваше предложение todda. Я буду читать на связанных серверах, поскольку он для меня новичок. – DotNetDeveloper

+0

Рассмотрите это как первый шаг. Затем у вас есть время для переноса бэкэнда приложения Access на SQL Server. – JeffO

Смежные вопросы