Mai țineți minte zilele senine ale copilăriei când vă distrați la masă cu supa alfabet? Păstrați aceste amintiri fericite undeva în subconștient pe măsură ce vom testa puțin versiunea de supă alfabet a bazei de date. Următoarele secțiuni descriu noțiunile de bază ale accesului la o bază de date cu șiruri de conexiune și ale utilizării unei interfețe de programare a bazei de date în codul VBA Access.
În acest articol
Utilizarea driverului ODBC sau furnizorului OLE DB
Asigurarea prin programare a interfeței la SQL Server din Access
Rezumatul versiunilor de driver ODBC
Rezumatul versiunilor de furnizor OLE DB
Utilizarea driverului ODBC sau furnizorului OLE DB
Șirurile de conexiune există de mult timp. Puteți defini un șir de conexiune formatat în interfața cu utilizatorul Access sau într-un cod VBA. Un șir de conexiune (ODBC sau OLE DB) transferă informațiile direct în baza de date, cum ar fi locația de server, numele bazei de date, tipul de securitate și alte opțiuni utile. De exemplu:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
La început, a existat SQL Server Native Client (SNAC), o bibliotecă independentă care conținea tehnologii ODBC și OLEDB și care este în continuare disponibilă pentru versiunile de SQL Server 2005-2012. Multe aplicații moștenite au utilizat SNAC, iar acesta este acceptat în continuare pentru compatibilitate inversă, dar nu recomandăm să îl utilizați pentru dezvoltarea de aplicații noi. Ar trebui să utilizați versiuni individuale, mai recente, care se pot descărca, ale driverelor ODBC.
Drivere ODBC
Open Database Connectivity (ODBC) este un protocol pe care îl utilizați la conectarea unei baze de date Access la o sursă de date externă, cum ar fi Microsoft SQL Server. De obicei, utilizați surse de date de fișier (numite și fișiere DSN) pentru a adăuga un șir de conexiune, caz în care este utilizat cuvântul cheie FILEDSN pentru șirul de conexiune, sau pentru a stoca în registry, caz în care este utilizat cuvântul cheie DSN. Ca alternativă, puteți utiliza VBA pentru a seta aceste proprietăți utilizând un șir de conexiune „fără DSN”.
De-a lungul anilor, driverele ODBC au fost expediate în trei faze:
-
Înainte de 2005, driverele ODBC au fost expediate cu Componente Windows Data Access (WDAC), care inițial au fost numite Componente Microsoft Data Access (MDAC). Aceste componente continuă să fie expediate cu Windows pentru compatibilitate inversă. Pentru informații suplimentare, consultați Componente Microsoft sau Windows Data Access.
-
Drivere ODBC au fost expediate cu SNAC pentru SQL Server 2005 până la SQL Server 2012.
-
După SQL Server 2012, Drivere ODBC au fost expediate individual și conțin asistență pentru noi caracteristici SQL Server.
Pentru dezvoltare nouă, evitați să utilizați drivere ODBC din primele două faze; utilizați drivere ODBC din a treia fază.
Furnizori OLE DB
Legare și îmbinare obiecte, Bază de date (OLE, DB) este un protocol mai recent pe care îl utilizați la conectarea unei baze de date Access la o sursă de date externă, cum ar fi Microsoft SQL Server. OLE DB nu necesită un DSN și, de asemenea, oferă acces complet la surse de date ODBC și la drivere ODBC.
Sfat De obicei, utilizați caseta de dialog Proprietăți legătură de date pentru a adăuga un șir de conexiune OLE DB. Deși din Access nu există nicio modalitate de a deschide caseta de dialog Proprietăți legătură de date, în Windows Explorer, puteți să creați un fișier .txt gol, să modificați tipul de fișier în udl., iar apoi să faceți dublu clic pe fișier. După ce creați un șir de conexiune, modificați tipul de fișier înapoi la .txt.
De-a lungul anilor, furnizori OLE DB au fost expediați în trei faze:
-
Înainte de 2005, furnizori OLE DB au fost expediați cu Componente Windows Data Access (WDAC), care inițial au fost numite Componente Microsoft Data Access (MDAC).
-
Furnizori OLE DB au fost expediați cu SQL Server 2005 până la SQL Server 2017. A fost perimat în 2011.
-
În 2017, s-a anulat perimarea furnizorului OLE DB SQL Server.
Versiunea recomandată momentan pentru dezvoltarea de soluții noi este Driver OLE DB 18 pentru SQL Server.
Cum să optimizați performanța cu un șir de conexiune ODBC
Pentru a optimiza performanța, a minimiza traficul de rețea și a reduce accesul multiutilizator la baza de date SQL Server, utilizați cât mai puține șiruri de conexiune posibil partajând șiruri de conexiune pe mai multe seturi de înregistrări. Deși Ace transferă pur și simplu un șir de conexiune la server, acesta înțelege și utilizează următoarele cuvinte cheie: DSN, DATABASE, UID, PWD, și DRIVER pentru a contribui la minimizarea comunicării client/server.
Notă Dacă s-a pierdut o conexiune ODBC la o sursă de date externă, Access încearcă automat să se reconecteze la aceasta. Dacă reîncercarea este reușită, puteți continua să lucrați. Dacă reîncercarea nu reușește, puteți lucra în continuare cu obiectele care nu se bazează pe conexiune. Pentru a vă reconecta, închideți și deschideți din nou Access.
Recomandări atunci când utilizați atât ODBC, cât și OLE DB
Nu amestecați tehnologiile șir de conexiune și acces la bază de date. Utilizați un șir de conexiune ODBC pentru DAO. Utilizați un șir de conexiune OLE DB pentru ADO. Dacă aplicația dvs. conține cod VBA care utilizează atât DAO, cât și ADO, utilizați driverul ODBC pentru DAO și furnizorul OLE DB pentru ADO. Străduiți-vă să obțineți cele mai recente caracteristici și asistență pentru ODBC și respectiv OLEDB.
ODBC utilizează termenul driver, iar OLE DB utilizează termenul furnizor. Termenii descriu același tip de componentă software, dar nu sunt interschimbabili în sintaxa șirului de conexiune. Utilizați valoarea corectă conform documentației.
Asigurarea prin programare a interfeței la SQL Server din Access
Există două modalități principale de a asigura prin programare interfața la o bază de date SQL Server din Access.
DAO
Un Data Access Object (DAO) furnizează o interfață abstractă pentru o bază de date. Microsoft Data Access Objects (DAO) este modelul nativ de programare de obiecte, care vă permite să ajungeți chiar în miezul Access și SQL Server pentru a crea, a șterge, a modifica și a lista obiecte, tabele, câmpuri, indexuri, relații, interogări, proprietăți și baze de date externe.
Pentru informații suplimentare, consultați referința Microsoft Data Access Objects.
ADO
Obiecte de date ActiveX (ADO) oferă un model de programare de nivel înalt și este disponibil în Access printr-o referință la o bibliotecă de la terți. ADO se învață ușor și permite aplicațiilor clientului să acceseze și să manipuleze date dintr-o varietate de surse, inclusiv Access și SQL Server. Principalele beneficii sunt ușurința în utilizare, viteza mare, supraîncărcarea redusă a memoriei și în caz de memorie insuficientă și amprentă de disc mică. ADO acceptă, de asemenea, caracteristici cheie pentru aplicații de construire și bazate pe web.
Pentru informații suplimentare, consultați referința Obiecte de date ActiveX Microsoft șiObiecte de date ActiveX Microsoft (ADO).
Pe care să îl utilizați?
Într-o soluție Access care utilizează cod VBA, puteți utiliza DAO, ADO sau pe ambele ca tehnologie a interfeței pentru baza de date. DAO continuă să fie implicit în Access. De exemplu, toate formularele și rapoartele, precum și interogările Access utilizează DAO. Însă atunci când migrați la SQL Server, luați în calcul utilizarea ADO pentru a spori eficiența soluției dvs. Iată instrucțiunile generale care vă pot ajuta să stabiliți când să utilizați DAO sau ADO.
Utilizați DAO atunci când doriți să:
-
Creați un formular de citire/scriere, legat, fără a utiliza VBA.
-
Interogați tabelele locale.
-
Descărcați date în tabele temporare.
-
Utilizați interogări directe ca surse de date pentru rapoarte sau formulare în modul doar în citire.
-
Definiți și utilizați un obiect TableDef sau QueryDef în VBA.
Utilizați ADO atunci când doriți să:
-
Valorificați moduri suplimentare de optimizare, cum ar fi efectuarea de operațiuni asincrone.
-
Rulați interogări directe DDL și DML.
-
Accesați date SQL Server direct prin seturi de înregistrări în VBA.
-
Scrieți cod mai simplu pentru anumite activități, cum ar fi redarea în flux de bloburi.
-
Apelați în mod direct o procedură stocată, cu parametri, utilizând un obiect de comandă din VBA.
Rezumatul versiunilor de driver ODBC
Următorul tabel rezumă informațiile importante despre versiunile de driver ODBC, locații de descărcare și asistență pentru caracteristici. Asigurați-vă că utilizați versiunea de biți corectă (64 de biți sau 32 de biți) a driverului bazată pe Windows, nu pe Office. Dacă rulați o versiune de Access pe 32 de biți pe o versiune de Windows pe 64 de biți, instalați drivere pe 64 de biți, ceea ce include componentele pe 32 de biți necesare pentru Access.
Pentru mai multe informații, consultați Utilizarea cuvintelor cheie din șirul de conexiune cu SQL Server Native Client, Note privind versiunea pentru ODBC la SQL Server pe Windows (V17)și Caracteristicile Microsoft ODBC Driver pentru SQL Server pe Windows (V13,11).
Rezumatul versiunilor de furnizor OLE DB
Următorul tabel rezumă informațiile importante despre versiunile de furnizori OLE DB, locații de descărcare și asistență pentru caracteristici. Asigurați-vă că utilizați versiunea de biți corectă (64 de biți sau 32 de biți) a driverului bazată pe Windows, nu pe Office. Dacă rulați o versiune de Access pe 32 de biți pe o versiune de Windows pe 64 de biți, instalați drivere pe 64 de biți, ceea ce include componentele pe 32 de biți necesare pentru Access.
Pentru mai multe informații, consultați Utilizarea cuvintelor cheie din șirul de conexiune cu SQL Server Native Client.
Furnizor OLE DB |
Versiune |
Descărcare |
Caracteristici noi |
Driver OLE DB 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Consultați Caracteristica Driver OLE DB pentru SQL Server și Note privind versiunea pentru Microsoft OLE DB Driver, pentru SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005-2012 |
Perimat, nu se utilizează |
|
Driver OLE DB (SQLOLEDB) |
Perimat, nu se utilizează |
Rezumatul cuvintelor cheie ODBC
În următorul tabel sunt rezumate cuvintele cheie ODBC recunoscute de SQL Server și scopul lor. Doar un subset este recunoscut de Access.
Cuvânt cheie |
Descriere |
Addr |
Adresa de rețea a serverului care rulează o instanță de SQL Server. |
AnsiNPW |
Specifică utilizarea comportamentelor definite ANSI pentru gestionarea comparațiilor NULL, a completării datelor de tip caracter, a avertismentelor și a concatenării NULL (Da sau Nu). |
APP |
Numele aplicației care apelează SQLDriverConnect. |
ApplicationIntent |
Declară tipul de volum de lucru al aplicației atunci când vă conectați la un server (ReadOnly sau ReadWrite). |
AttachDBFileName |
Numele fișierului principal al unei baze de date atașabile. |
AutoTranslate |
Specifică dacă sunt trimise șiruri de caractere ANSI între client sau server sau traduse în Unicode (Da sau Nu). |
Database |
Numele bazei de date. Descriere Scopul conexiunii. Driver Numele driverului așa cum este returnat de SQLDrivers. |
DSN |
Numele unui surse de date utilizator ODBC sau de sistem. Encrypt Specifică dacă datele trebuie criptate înainte de a le trimite în rețea (Da sau Nu). |
Failover_Partner |
Numele serverului partener de reluare în caz de nereușită care se va utiliza în cazul în care nu se poate efectua o conexiune la serverul principal. |
FailoverPartnerSPN |
SPN pentru partenerul de reluare în caz de nereușită. |
Fallback |
Cuvânt cheie perimat. |
FileDSN |
Numele unui surse de date de fișier ODBC existente. Language Limba SQL Server. |
MARS_Connection |
Specifică mai multe seturi de rezultate active (MARS) la conexiunea pentru SQL Server 2005 (9.x) sau o versiune mai recentă (Da sau Nu). |
MultiSubnetFailover |
Specifică dacă să se conecteze la listenerul grupului de disponibilitate al unui grup de disponibilitate SQL Server sau al unei instanțe de cluster de reluare în caz de nereușită (Da sau Nu). |
Net |
dbnmpntw indică canale declarate, iar dbmssocn indică TCP/IP. |
PWD |
Parola de conectare la SQL Server. |
QueryLog_On |
Specifică înregistrarea în jurnal a interogărilor cu timp lung de execuție (Da sau Nu). |
QueryLogFile |
Calea completă și numele de fișier ale unui fișier de utilizat pentru a înregistra în jurnal date privind interogările cu timp lung de execuție. |
QueryLogTime |
Șir de caractere sub formă de cifre care specifică pragul (în milisecunde) pentru înregistrarea în jurnal a interogărilor cu timp lung de execuție. |
QuotedId |
Specifică dacă SQL Server utilizează regulile ISO în ceea ce privește utilizarea ghilimelelor în instrucțiunile SQL (Da sau Nu). |
Regional |
Specifică dacă driverul ODBC SQL Server Native Client utilizează setările clientului atunci când convertește date despre monedă, dată sau oră în date de tip caracter (Da sau Nu). |
SaveFile |
Numele unui fișier sursă de date ODBC în care sunt salvate atributele conexiunii curente dacă conexiunea a reușit. |
Server |
Numele unei instanțe SQL Server: Server din rețea, o adresă IP sau un alias Manager de configurare. |
ServerSPN |
SPN pentru server. |
StatsLog_On |
Activează capturarea datelor despre performanța driverului ODBC SQL Server Native Client. |
StatsLogFile |
Calea completă și numele de fișier ale unui fișier utilizat pentru a înregistra statisticile de performanță ale driverului ODBC SQL Server Native Client. |
Trusted_Connection |
Specifică dacă modul autentificare Windows sau numele de utilizator sau parola SQL Server sunt utilizate pentru validarea conectării (Da sau Nu). |
TrustServerCertificate |
Atunci când este utilizat cu Criptare, activează criptarea utilizând un certificat de server cu semnătură automată. |
UID |
Nume de conectare la SQL Server. |
UseProcForPrepare |
Cuvânt cheie perimat. |
WSID |
Identificatorul stației de lucru, numele de rețea al computerului pe care se află aplicația. |
Rezumatul cuvintelor cheie OLE DB
În următorul tabel sunt rezumate cuvintele cheie OLE DB recunoscute de SQL Server și scopul lor. Doar un subset este recunoscut de Access.
Cuvânt cheie |
Descriere |
Addr |
Adresa de rețea a serverului care rulează o instanță de SQL Server. |
APP |
Șirul de identificare a aplicației. |
ApplicationIntent |
Declară tipul de volum de lucru al aplicației atunci când vă conectați la un server (ReadOnly sau ReadWrite). |
AttachDBFileName |
Numele fișierului principal al unei baze de date atașabile. |
AutoTranslate |
Configurează traducerea caracterelor OEM/ANSI (Adevărat sau Fals). |
Timp de expirare pentru conexiune |
Intervalul de timp (în secunde) de așteptat pentru a se finaliza inițializarea sursei de date. |
Current Language |
Nume limbă pentru SQL Server. |
Data Source |
Numele unei instanțe de SQL Server din organizație. |
Database |
Numele bazei de date. |
DataTypeCompatibility |
Un număr care indică modul de gestionare a tipului de date care va fi utilizat. |
Encrypt |
Specifică dacă datele trebuie criptate înainte de a le trimite în rețea (Da sau Nu). |
FailoverPartner |
Numele serverului de reluare în caz de nereușită utilizat pentru reproducerea în oglindă a bazelor de date. |
FailoverPartnerSPN |
SPN pentru partenerul de reluare în caz de nereușită. |
Initial Catalog |
Numele bazei de date. |
Initial File Name |
Numele fișierului principal (include numele de cale completă) al unei baze de date atașabile. |
Integrated Security |
Utilizată pentru Autentificare Windows (SSPI). |
Language |
Limba SQL Server. |
MarsConn |
Specifică mai multe seturi de rezultate active (MARS) la conexiunea pentru SQL Server 2005 (9.x) sau o versiune mai recentă (Da sau Nu). |
Net |
Biblioteca de rețea utilizată pentru a stabili o conexiune la o instanță de SQL Server din organizație. |
Network Address |
Adresa de rețea a unei instanțe de SQL Server din organizație. |
PacketSize |
Dimensiunea pachetului de rețea. Valoarea implicită este 4096. |
Persist Security Info |
Specifică dacă este activată securitatea persistentă (Adevărat sau Fals). |
PersistSensitive |
Specifică dacă este activată confidențialitate persistentă (Adevărat sau Fals). |
Provider |
Pentru SQL Server Native Client, acesta trebuie să fie SQLNCLI11. |
PWD |
Parola de conectare la SQL Server. |
Server |
Numele unei instanțe SQL Server: Server din rețea, o adresă IP sau un alias Manager de configurare. |
ServerSPN |
SPN pentru server. |
Timeout |
Intervalul de timp (în secunde) de așteptat pentru a se finaliza inițializarea sursei de date. |
Trusted_Connection |
Specifică dacă modul autentificare Windows sau numele de utilizator sau parola SQL Server sunt utilizate pentru validarea conectării (Da sau Nu). |
TrustServerCertificate |
Specifică dacă este validat un certificat de server (Adevărat sau Fals). |
UID |
Nume de conectare la SQL Server. |
Use Encryption for Data |
Specifică dacă datele trebuie criptate înainte de a le trimite în rețea (Adevărat sau Fals). |
UseProcForPrepare |
Cuvânt cheie perimat. |
WSID |
Identificatorul stației de lucru, numele de rețea al computerului pe care se află aplicația. |