Свързване на Access към SQL Server

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Спомнете си за безоблачните дни на детството, когато сте се забавлявали със супа с буквички. Пазете тези щастливи мисли, докато ние опитваме версии с различните вкусове на супа с буквички, но за бази данни. В следващите раздели се обясняват основите на бази данни с низове за връзка и използването на програмен интерфейс за бази данни във вашия VBA код на Access.

Компоненти за достъп до данните

В тази статия

Използване на ODBC драйвер или доставчик на OLE бази данни

Програмен интерфейс за SQL Server от Access

Резюме на версиите на ODBC драйвери

Резюме на версиите на доставчици на OLE бази данни

Резюме на ключовите думи за ODBC

Резюме на ключовите думи за OLE бази данни

Използване на ODBC драйвер или доставчик на OLE бази данни

Низовете за връзките не са нещо ново. Можете да дефинирате форматиран низ за връзка или в потребителския интерфейс на Access, или във VBA код. Низът за връзка (независимо дали е за ODBC, или за OLE DB) предава информация директно в базата данни – местоположение на сървъра, име на базата данни, тип на защитата и други полезни опции. Например:

ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;

Началото е с SQL Server Native Client (SNAC) – самостоятелна библиотека, която съдържа ODBC и OLEDB технологии и все още се предлага за версии на SQL Server от 2005 до 2012. Много от наследените приложения използват SNAC и все още се поддържат за обратна съвместимост, но не препоръчваме да използвате това за разработване на нови приложения. Трябва да използвате по-нови, индивидуални версии на ODBC драйвери, които могат да се изтеглят.

ODBC драйвери

Open Database Connectivity (ODBC) е протокол, който можете да използвате за свързване на база данни на Access с външен източник на данни, като например Microsoft SQL Server. Обикновено използвате файлови източници на данни (наричани още DSN файлове), за да добавите низ за връзка, в който случай ключовата дума FILEDSN се използва в низа за връзка, или е съхранена в системния регистър, в който случай се използва ключовата дума DSN. Вместо това можете да използвате VBA, за да зададете тези свойства, като използвате низ на връзка "DSN-less".

През годините, ODBC драйверите са се доставяли на три фази:

  • Преди 2005 година, ODBC драйверите включваха компоненти за WDAC (компоненти за достъп до данни на Windows), които първоначално се наричаха MDAC (компоненти за достъп до данни на Microsoft). Тези компоненти все още се предоставят с Windows за обратна съвместимост. За повече информация вж. Компоненти за достъп до данни на Microsoft или Windows.
  • ODBC драйвери се предоставяха с SNAC за SQL Server 2005 до SQL Server 2012.
  • След SQL Server 2012, ODBC драйверите се предоставят отделно и съдържат поддръжка за новите функции на SQL Server.

За нови разработки трябва да избягвате използването на ODBC драйвери от първите две фази, а да използвате ODBC драйвери от третата фаза.

Доставчици на OLE бази данни

Object Linking and Embedding, Database (OLE DB) е протокол, който можете да използвате за свързване на база данни на Access с външен източник на данни, като например Microsoft SQL Server. OLE DB не изисква DSN, а също предоставя и пълен достъп до ODBC източници на данни и ODBC драйвери.

Съвет Обикновено използвате диалоговия прозорец Свойства на връзка с данни, за да добавите OLE база данни низ за връзка. Въпреки че няма начин от Access да се отвори диалоговият прозорец Свойства на връзките с данни, в Windows Explorer можете да създадете празен .txt файл, да промените типа на файла на .udl и след това да щракнете двукратно върху файла. След като създадете низ на връзка, променете типа на файла обратно на .txt.

През годините, доставчиците на OLE бази данни са се предоставяли на три фази:

  • Преди 2005 година, доставчиците на OLE бази данни включваха компоненти за WDAC (компоненти за достъп до данни на Windows), които първоначално се наричаха MDAC (компоненти за достъп до данни на Microsoft).
  • Доставчици на OLE бази данни се предоставяха с SNAC за SQL Server 2005 до SQL Server 2017. Това беше прекратено през 2011 г.
  • През 2017 г. доставчикът на OLE база данни за SQL Server беше възстановен.

Препоръчваната в момента версия за разработване на нови решения е OLE DB драйвер 18 за SQL Server.

Как да оптимизирате производителността с низ за връзка за ODBC

За да оптимизирате производителността, да минимизирате мрежовия трафик и да намалите достъпа на много потребители до базата данни на SQL Server, използвайте колкото е възможно повече низове за свързване, като споделяте низове за връзка в множество набори от записи. Въпреки че Ace просто предава низ за връзка към сървъра, той разбира и използва следните ключови думи: DSN, DATABASE, UID, PWD и DRIVER, за да помогне за минимизирането на комуникацията клиент-сървър.

Забележка Ако се загуби ODBC връзка към външен източник на данни, Access автоматично се опитва да се свърже отново с него. Ако повторният опит е успешен, можете да продължите да работите. Ако повторният опит е неуспешен, все още можете да работите с обекти, които не разчитат на връзката. За да се свържете повторно, затворете и отворете отново Access.

Препоръки при използване както на ODBC, така и на OLE DB

Избягвайте смесването на технологии с низове за връзка и с достъп до бази данни. За DAO използвайте низ за връзка на ODBC. За ADO използвайте низ за връзка на OLE DB. Ако вашето приложение съдържа VBA код, който използва както DAO, така и ADO, използвайте ODBC драйвера за DAO и за доставчика на OLE DB за ADO. Стремете се да получавате най-новите функции и поддръжка както за ODBC, така и за OLE DB.

За ODBC се използва терминът "драйвер", а за OLE DB се използва терминът "доставчик". Термините описват един и същ тип софтуерен компонент, но не са взаимозаменяеми в синтаксиса на низа за връзка. Използвайте правилната стойност, както е дадено в документацията.

Най-горе на страницата

Програмен интерфейс за SQL Server от Access

Има два основни начина за свързване с програмен интерфейс към база данни на SQL Server от Access.

DAO

Обектът за достъп до данни (DAO) предоставя абстрактен интерфейс към база данни. Обектите за достъп до данни на Microsoft (DAO) са основен модел на обекти за програмиране, който ви позволява да влезете в основата на Access и да SQL Server да създавате, изтривате, модифицирате и изброявате обекти, таблици, полета, индекси, релации, заявки, свойства и външни бази данни.

За повече информация вижте Справка за обекти за достъп до данни на Microsoft.

ADO

ActiveX обектите с данни (ADO) предоставят програмен модел от високо ниво и са налични в Access чрез препратка към библиотека на друг доставчик. ADO са лесни за научаване и дават на клиентските приложения достъп възможност за манипулиране с данни от различни източници, включително Access и SQL Server. Техните основни предимства са лесно използване, висока скорост, ниска потребявана памет и малко място на диска. ADO поддържат и основни функции за изграждане и уеб-базирани приложения.

За повече информация вж. Препратка към обекти с данни на Microsoft ActiveX и Microsoft ActiveX обекти с данни (ADO)..

Кое от тях трябва да използвате?

В решение на Access, което използва VBA код, можете да използвате като технология за интерфейс към бази данни DAO, ADO или и двете. DAO продължава да бъде обект по подразбиране в Access. Например всички формуляри, отчети и заявки на Access използват DAO. Но когато мигрирате към SQL Server, помислете дали да не използвате ADO, за да направите вашето решение по-ефективно. Ето общите насоки, които ще ви помогнат да решите кога да използвате DAO и кога – ADO.

Използвайте DAO, когато искате:

  • Да създадете формуляр за четене/запис, обвързан формуляр без използване на VBA.
  • Да търсите в локални таблици.
  • Да изтегляте данни във временни таблици.
  • Да използвате транзитни заявки като източници на данни за отчети или формуляри в режим "само за четене".
  • Да дефинирате и използвате обект TableDef или Querydef във VBA.

Използвайте ADO, когато искате:

  • Да се възползвате от допълнителни начини за оптимизиране, като напр. извършване на асинхронни операции.
  • Да изпълнявате транзитни заявки на DDL и DML.
  • Да достигате до данните на SQL Server директно чрез набори записи във VBA.
  • Да пишете по-прост код за определени задачи, като например поточно предаване на BLOB обекти.
  • Да извиквате съхранена процедура директно и с параметри, като използвате команден обект във VBA.

Най-горе на страницата

Резюме на версиите на ODBC драйвери

Следващата таблица обобщава важна информация за версии на драйвери на ODBC, местоположения за изтегляне и поддръжка на функции. Уверете се, че използвате правилната версия (64-битова или 32-битова) на драйвера, съответстваща на Windows, а не на Office. Ако изпълнявате 32-битов Access на 64-битова версия на Windows, инсталирайте 64-битови драйвери, които включват и 32-битовите компоненти, необходими за Access.

За повече информация вижте Използване на ключови думи "Низ за връзка" с SQL Server Native Client бележки по изданието за ODBC за SQL Server в Windows (V17) и Функции на MICROSOFT ODBC драйвер за SQL Server в Windows (V13, 11).

ODBC драйвери Версия Изтегляне Нови функции
ODBC драйвери 17.0 до 17.3 SQL Server 2017 Изтегляне ODBC драйвер 17.3
Използване на Azure Active Directory с ODBC драйвер
Ограничения на ODBC драйвера при използване на Always Encrypted
Използване на XA транзакции
ODBC драйвер 17.2
Използване на Always Encrypted с ODBC драйвера за SQL Server
Класификация на данни
UTF-8 сървърно кодиране комплектоване и поддръжка на Unicode
ODBC драйвер 17.1
Използване на Always Encrypted с ODBC драйвера за SQL Server
ODBC драйвер 17.0
Always Encrypted
ИзползвайтеFMTONLY За да използвате наследени метаданни в специални случаи, които изискват временни таблици. Вижте Бележки по изданието за ODBC за SQL Server в Windows
Разлики при използване на управляван екземпляр (ODBC версия 17)
ODBC драйвер 13.1 SQL Server 2016 SP1, SQL Azure Изтегляне Always Encrypted
Azure Active Directory
Групи за достъпност AlwaysOn
Групиране на връзки с оглед на драйвера в ODBC драйвера за SQL Server
ODBC драйвер 13.0 SQL Server 2016 Изтегляне Интернационализирано име на домейн (IDN)
ODBC драйвер 11.0 SQL Server 2005 до 2012 Изтегляне Групиране на връзки с оглед на драйвера
Устойчивост на връзката в ODBC драйвер на Windows
Асинхронно изпълнение
Основни имена на услуги (SPN) в клиентски връзки (ODBC)
Функции на Microsoft ODBC драйвер за SQL Server в Windows

Най-горе на страницата

Резюме на версиите на доставчици на OLE бази данни

Следващата таблица обобщава важна информация за версии на OLE DB доставчици, местоположения за изтегляне и поддръжка на функции. Уверете се, че използвате правилната версия (64-битова или 32-битова) на драйвера, съответстваща на Windows, а не на Office. Ако изпълнявате 32-битов Access на 64-битова версия на Windows, инсталирайте 64-битови драйвери, които включват и 32-битовите компоненти, необходими за Access.

За повече информация вижте Използване на ключови думи "Низ за връзка" с SQL Server Native Client.

Доставчик на OLE DB Версия Изтегляне Нови функции
OLE DB драйвер 18.2.1
(MSOLEDBSQL)
SQL Server 2017 Изтегляне Вижте Драйвер на OLE база данни за SQL Server функция и бележки по изданието за Microsoft OLE DB драйвер за SQL Server
SQL Server Native Client (SQLNCLI) SQL Server 2005 до 2012 Прекратен, да не се използва
Драйвер за OLE DB (SQLOLEDB) Прекратен, да не се използва

Най-горе на страницата

Резюме на ключовите думи за ODBC

Таблицата по-долу обобщава ключовите думи за ODBC, разпознавани от SQL Server, и предназначението им. Само част от тях се разпознават от Access.

Ключова дума Описание
Addr Мрежовият адрес на сървъра, на който се изпълнява екземпляр на SQL Server.
AnsiNPW Указва употребата на дефинирани по ANSI поведения за обработка на NULL сравнения, допълване на знакови данни, предупреждения и съединяване на NULL (Yes или No).
APP Име на приложението, което се извиква SQLDriverConnect.
ApplicationIntent Декларира типа на работното натоварване на приложението при свързване към сървър (ReadOnly или ReadWrite).
AttachDBFileName Име на първичния файл на база данни за прикачване.
AutoTranslate Указва дали ANSI низовете знаци се изпращат между клиента и сървъра, или се транслират в Unicode (Yes или No).
Database Името на базата данни. Description Предназначението на връзката. Driver Име на драйвера, както е върнато от SQLDrivers.
DSN Име на съществуващ ODBC потребител или системен източник на данни. Encrypt Указва дали данните трябва да бъдат шифровани преди изпращането ги по мрежата (Yes или No).
Failover_Partner Име на партньора за преместване при отказ, който трябва да се използва, ако не може да се направи връзка към основния сървър.
FailoverPartnerSPN SPN за партньора за преместване при отказ.
Fallback Отхвърлена ключова дума.
FileDSN Име на съществуващ ODBC източник на данни за файлове. Language Езикът SQL Server.
MARS_Connection Указва, че има няколко активни набора с резултати (MARS) за връзката за SQL Server 2005 (9.x) или по-нова версия (Yes или No).
MultiSubnetFailover Указва дали да се свързвате към слушателя на група за наличност в група за наличност на SQL Server, или към екземпляр на клъстер за преминаване при отказ (Yes или No).
Net dbnmpntw показва наименовани канали, а dbmssocn показва TCP/IP.
PWD Паролата за влизане в SQL Server.
QueryLog_On Указва регистриране на дългосрочни заявки (Yes или No).
QueryLogFile Пълният път и име на файла, който да се използва за регистриране на данни при дългосрочни заявки.
QueryLogTime Цифров низ от знаци, задаващ прага (в милисекунди) за регистриране на дългосрочни заявки.
QuotedId Указва дали SQL Server използва правилата на ISO относно използването на кавички в SQL декларации (Yes или No).
Regional Указва дали ODBC драйверът за SQL Server Native Client използва клиентските настройки при конвертиране на данни за валута, дата или час в знакови данни (Yes или No).
SaveFile Име на файл за ODBC източник на данни, в който се записват атрибутите на текущата връзка, ако връзката е успешна.
Server Името на екземпляра на SQL Server: Сървър в мрежата, IP адрес или псевдоним на диспечера за конфигуриране.
ServerSPN SPN за сървъра.
StatsLog_On Разрешава заснемането на данни за производителността на ODBC драйвера за SQL Server Native Client.
StatsLogFile Пълният път и име на файла, който се използва за записване на статистиката за производителността на ODBC драйвера за SQL Server Native Client.
Trusted_Connection Указва дали за проверка на влизането се използва режим на удостоверяване на Windows или потребителско име или парола за SQL Server (Yes или No).
TrustServerCertificate Когато се използва с Encrypt, разрешава шифроване с помощта на самоподписан сертификат на сървър.
UID Името за влизане в SQL Server.
UseProcForPrepare Отхвърлена ключова дума.
WSID Идентификатор на работната станция – името на мрежата на компютъра, на който се намира приложението.

Най-горе на страницата

Резюме на ключовите думи за OLE бази данни

Таблицата по-долу обобщава ключовите думи за OLE DB, разпознавани от SQL Server, и предназначението им. Само част от тях се разпознават от Access.

Ключова дума Описание
Addr Мрежовият адрес на сървъра, на който се изпълнява екземпляр на SQL Server.
APP Низът, идентифициращ приложението.
ApplicationIntent Декларира типа на работното натоварване на приложението при свързване към сървър (ReadOnly или ReadWrite).
AttachDBFileName Име на първичния файл на база данни за прикачване.
AutoTranslate Конфигурира ОЕМ/ANSI транслиране на знаци (TRUE или FALSE).
Connect Timeout Времето (в секунди), което трябва да се изчака за завършване на инициализацията на източника на данни.
Current Language Името на езика на SQL Server.
Data Source Името на екземпляра на SQL Server в организацията.
Database Името на базата данни.
DataTypeCompatibility Число, показващо режима за обработка на типа данни, който ще се използва.
Encrypt Указва дали данните трябва да бъдат шифровани преди изпращането им по мрежата (Yes или No).
FailoverPartner Името на сървъра за преминаване при отказ, използван за дублиране на бази данни.
FailoverPartnerSPN SPN за партньора за преместване при отказ.
Initial Catalog Името на базата данни.
Initial File Name Името на първичния файл (включващо пълното име на път) на база данни, която може да се прикачва.
Integrated Security Използва се за удостоверяване на Windows (SSPI).
Language Езикът на SQL Server.
MarsConn Указва, че има няколко активни набора с резултати (MARS) за връзката за SQL Server 2005 (9.x) или по-нова версия (Yes или No).
Net Мрежовата библиотека, използвана за установяване на връзка към екземпляр на SQL Server в организацията.
Network Address Мрежовият адрес на екземпляр на SQL Server в организацията.
PacketSize Размер на пакет на мрежата. Стойността по подразбиране е 4096.
Persist Security Info Указва дали е разрешена защита при продължаване (TRUE или FALSE).
PersistSensitive Указва дали е разрешена чувствителност към продължаване (TRUE или FALSE).
Provider За SQL Server Native Client това трябва да бъде SQLNCLI11.
PWD Паролата за влизане в SQL Server.
Server Името на екземпляра на SQL Server: Сървър в мрежата, IP адрес или псевдоним на диспечера за конфигуриране.
ServerSPN SPN за сървъра.
Timeout Времето (в секунди), което трябва да се изчака за завършване на инициализацията на източника на данни.
Trusted_Connection Указва дали за проверка на влизането се използва режим на удостоверяване на Windows или потребителско име или парола за SQL Server (Yes или No).
TrustServerCertificate Указва дали е валидиран сертификат на сървър (TRUE или FALSE).
UID Името за влизане в SQL Server.
Use Encryption for Data Указва дали данните трябва да бъдат шифровани преди изпращането им по мрежата (TRUE или FALSE).
UseProcForPrepare Отхвърлена ключова дума.
WSID Идентификатор на работната станция – името на мрежата на компютъра, на който се намира приложението.

Най-горе на страницата

Администриране на ODBC източници на данниУправление на свързани таблици