Atsauciet atmiņā to laimīgo periodu, kad pārmērīgs dažādu akronīmu lietojums nesagādāja galvassāpes. Paturiet prātā šīs laimīgās domas, kamēr mēs jums pastāstām par datu bāzu specifiskajiem akronīmiem. Nākamajās sadaļās ir izklāstīta pamatinformācija par datu bāzes izveidi, izmantojot savienojuma virknes, un datu bāzu programmēšanas interfeisa izmantošanu Access VBA kodā.
Šajā rakstā
ODBC draivera vai OLE DB nodrošinātāja izmantošana
Programmatiska datu apstrāde no Access uz SQL Server
ODBC draiveru versiju kopsavilkums
ODBC draivera vai OLE DB nodrošinātāja izmantošana
Savienojuma virknes pastāv jau ilgu laiku. Varat definēt formatētu savienojuma virkni vai nu Access lietotāja interfeisā, vai VBA kodā. Savienojuma virkne (ODBC vai OLE DB) pārnes informāciju tieši uz datu bāzi, piemēram, servera atrašanās vietu, datu bāzes nosaukumu, drošības tipu un citas noderīgas iespējas. Piemērs.
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Sākumā tika lietota SQL Server Native Client (SNAC) — savrupa bibliotēka, kurā ir iekļautas ODBC un OLEDB tehnoloģijas, un tā joprojām ir pieejama SQL Server 2005–2012 versijās. Daudzas mantotās lietojumprogrammas izmantoja SNAC, un tas joprojām tiek atbalstīts atpakaļsaderības nodrošināšanai, taču mēs neiesakām to izmantot jaunu lietojumprogrammu izstrādei. Tā vietā izmantojiet jaunākas atsevišķas, lejupielādējamas ODBC draiveru versijas.
ODBC draiveri
Atvērto datu bāzu savienojamība (Open Database Connectivity — ODBC) ir protokols, ko var izmantot, lai savienotu Access datu bāzi ar ārēju datu avotu, piemēram, Microsoft SQL Server. Parasti failu datu avoti (dēvēti arī par DSN failiem) tiek izmantoti, lai pievienotu savienojuma virkni (šādā gadījumā atslēgvārds FILEDSN tiek lietots savienojuma virknē vai tiek saglabāts reģistrā (tad tiek izmantots DSN atslēgvārds)). Varat arī izmantot VBA, lai iestatītu šos rekvizītus, izmantojot savienojuma virknes "bez DNS".
Gadu gaitā ODBC draiveri ir tikuši sūtīti trīs posmos:
-
Pirms 2005. gada versijas ODBC draiveri tika sūtīti ar Windows datu piekļuves komponentiem (Windows Data Access Components — WDAC), kas sākotnēji tika dēvēti par Microsoft datu piekļuves komponentiem (Microsoft Data Access Components — MDAC). Šie komponenti joprojām tiek sūtīti ar Windows, lai nodrošinātu atpakaļsaderību. Papildinformāciju skatiet rakstā Microsoft vai Windows datu piekļuves komponenti.
-
ODBC draiveri tika sūtīti ar SNAC SQL Server 2005 versiju un jaunākām versijām līdz SQL Server 2012 versijai.
-
Pēc SQL Server 2012 versijas ODBC draiveri tiek sūtīti atsevišķi un ietver atbalstu jaunajiem SQL Server līdzekļiem.
Lai veiktu jaunu izstrādi, neizmantojiet ODBC draiverus no pirmajiem diviem posmiem. Izmantojiet ODBC draiverus no trešā posma.
OLE DB nodrošinātāji
Objektu saistīšanas un iegulšanas datu bāze (Object Linking and Embedding Database — OLE DB) ir jaunāks protokols, ko var izmantot, lai savienotu Access datu bāzi ar ārēju datu avotu, piemēram, Microsoft SQL Server. OLE DB izmantošanai nav nepieciešams DSN, un tas nodrošina pilnu piekļuvi ODBC datu avotiem un ODBC draiveriem.
Padoms . Lai pievienotu OLE DB savienojuma virkni, parasti tiek izmantots dialoglodziņš Datu saišu rekvizīti. Lai gan programmā Windows Explorer nav iespējas atvērt dialoglodziņu Datu saišu rekvizīti, varat izveidot tukšu .txt failu, nomainīt faila tipu uz .udl un pēc tam veikt dubultklikšķi uz faila. Pēc tam, kad esat izveidojis savienojuma virkni, nomainiet faila tipu atpakaļ uz .txt.
Gadu gaitā OLE DB nodrošinātāji ir tikuši sūtīti trīs posmos:
-
Pirms 2005. gada versijas OLE DB nodrošinātāji tika sūtīti ar Windows datu piekļuves komponentiem (Windows Data Access Components — WDAC), kas sākotnēji tika dēvēti par Microsoft datu piekļuves komponentiem (Microsoft Data Access Components — MDAC).
-
OLE DB nodrošinātāji tika sūtīti ar SNAC SQL Server 2005 versiju un jaunākām versijām līdz SQL Server 2017 versijai. Tas tika atzīts par novecojušu 2011. gadā.
-
2017. gadā SQL Server OLE DB nodrošinātāja novecošanas statuss tika atcelts.
Pašlaik ieteiktā jauna risinājuma izstrādes versija ir OLE DB draiveris 18 darbam ar SQL Server.
Veiktspējas optimizēšana, izmantojot ODBC savienojuma virkni
Lai optimizētu veiktspēju, samazinātu tīkla trafiku un samazinātu vairāku lietotāju piekļuvi SQL Server datu bāzei, izmantojiet pēc iespējas mazāk savienojuma virkņu, kopīgojot savienojuma virknes vairākās ierakstu kopās. Lai gan Ace vienkārši pārsūta savienojuma virkni uz serveri, tas saprot un izmanto šādus atslēgvārdus: DSN, DATABASE, UID, PWD un DRIVER, lai palīdzētu samazināt klienta/servera saziņu.
Piezīme Ja tiek zaudēts ODBC savienojums ar ārēju datu avotu, programma Access automātiski mēģina atkārtoti izveidot savienojumu ar to. Ja atkārtotais mēģinājums ir sekmīgs, varat turpināt darbu. Ja atkārtotais mēģinājums ir neveiksmīgs, varat strādāt ar objektiem, kas nav atkarīgi no savienojuma. Lai atkārtoti izveidotu savienojumu, aizveriet un vēlreiz atveriet programmu Access.
Ieteikumi, izmantojot gan ODBC, gan OLE DB
Izvairieties no savienojuma virkņu un datu bāzu piekļuves tehnoloģiju apvienošanas. DAO objektiem izmantojiet ODBC savienojuma virkni. ADO objektiem izmantojiet OLE DB savienojuma virkni. Ja jūsu lietojumprogrammā ir VBA kods, kas izmanto gan DAO, gan ADO, DAO objektiem izmantojiet ODBC draiveri, bet ADO objektiem — OLE DB nodrošinātāju. Mēģiniet iegūt jaunākos ODBC un OLEDB līdzekļus un atbalstu.
ODBC izmanto terminu draiveri, bet OLE DB — terminu nodrošinātāju. Termini apraksta viena un tā paša tipa programmatūras komponentu, bet nav savstarpēji aizvietojami savienojuma virkņu sintaksē. Izmantojiet pareizās vērtības, kā norādīts dokumentācijā.
Programmatiska datu apstrāde no Access uz SQL Server
Ir divi galvenie veidi, kā programmatiski apstrādāt datus no Access uz SQL Server datu bāzi.
DAO
Datu piekļuves objekts (DAO) nodrošina abstraktu datu apstrādi uz datu bāzei. Microsoft datu piekļuves objekti (DAO) ir iebūvētais programmēšanas objektu modelis, kas sniedz iespēju izmantot Access un SQL Server, lai izveidotu, dzēstu, modificētu un uzskaitītu objektus, tabulas, laukus, indeksus, relācijas, vaicājumus, rekvizītus un ārējās datu bāzes.
Papildinformāciju skatiet rakstā Microsoft datu piekļuves objektu atsauce.
ADO
ActiveX datu objekti (ADO) nodrošina augsta līmeņa programmēšanas modeli, kas ir pieejams programmā Access, izmantojot atsauci uz trešo pušu bibliotēku. ADO ir vienkārši apgūstama metode, kas ļauj klienta lietojumprogrammām piekļūt un manipulēt datus no dažādiem avotiem, tostarp Access un SQL Server. Tās primārie ieguvumi ir lietošanas ērtums, ātrdarbība, zems atmiņas lietojums un niecīga aizņemta vieta diskā. ADO atbalsta arī galvenos līdzekļus, kas paredzēti izstrādei un tīmekļa lietojumprogrammām.
Papildinformāciju skatiet rakstā Microsoft ActiveX datu objektu atsauce un Microsoft ActiveX datu objekti (ADO).
Kuru izmantot?
Access risinājumā, kas izmanto VBA kodu, varat izmantot DAO, ADO (vai abus) kā datu bāzes interfeisa tehnoloģiju. Programmā Access pēc noklusējuma joprojām tiek izmantots DAO. Piemēram, visas formas, atskaites un Access vaicājumi izmanto DAO. Taču, ja migrējat uz SQL Server, apsveriet iespēju izmantot ADO, lai risinājums būtu efektīvāks. Tālāk norādītas vispārīgas vadlīnijas, kas palīdzēs izlemt, kad izmantot DAO vai ADO.
Izmantojiet DAO, lai:
-
Izveidotu lasāmu/rakstāmu, saistītu formu, neizmantojot VBA.
-
Veiktu vaicājumus lokālās tabulās.
-
Lejupielādētu datus pagaidu tabulās.
-
Izmantotu tranzītvaicājumus kā datu avotus atskaitēm vai formām tikai lasīšanas režīmā.
-
Definētu un izmantotu TableDef vai objektu QueryDef valodā VBA.
Izmantojiet ADO, lai:
-
Izmantotu papildu optimizēšanas veidus, piemēram, asinhronu darbību veikšanu.
-
Izpildītu DDL un DML tranzītvaicājumus.
-
Piekļūtu SQL Server datiem tieši, izmantojot VBA ierakstkopas.
-
Uzrakstītu vienkāršāku kodu noteiktiem uzdevumiem, piemēram, BLOB straumēšanai.
-
Tieši izsauktu saglabātu procedūru ar parametriem, izmantojot VBA komandu objektu.
ODBC draiveru versiju kopsavilkums
Tālāk sniegtajā tabulā ir apkopota svarīga informācija par ODBC draiveru versijām, lejupielāžu atrašanās vietām un līdzekļu atbalstu. Pārliecinieties, vai izmantojat draivera pareizo bitu versiju (64 bitu vai 32 bitu), pamatojoties uz Windows, nevis Office. Ja 64 bitu Windows versijā darbojas 32 bitu Access versija, instalējiet 64 bitu draiverus, kuros ir iekļauti programmai Access nepieciešamie 32 bitu komponenti.
Papildinformāciju skatiet rakstā Savienojuma virkņu atslēgvārdu lietošana ar SQL Server Native Client, ODBC piezīmes par laidienu serverim SQL Server operētājsistēmā Windows (V17) un Microsoft ODBC draivera līdzekļi darbam ar SQL Server operētājsistēmā Windows (V13, 11).
OLE DB nodrošinātāju versiju kopsavilkums
Tālāk sniegtajā tabulā ir apkopota svarīga informācija par OLE DB nodrošinātāju versijām, lejupielāžu atrašanās vietām un līdzekļu atbalstu. Pārliecinieties, vai izmantojat draivera pareizo bitu versiju (64 bitu vai 32 bitu), pamatojoties uz Windows, nevis Office. Ja 64 bitu Windows versijā darbojas 32 bitu Access versija, instalējiet 64 bitu draiverus, kuros ir iekļauti programmai Access nepieciešamie 32 bitu komponenti.
Papildinformāciju skatiet rakstā Savienojuma virkņu atslēgvārdu lietošana, izmantojot SQL Server Native Client.
OLE DB nodrošinātājs |
Versija |
Lejupielāde |
Jauni līdzekļi |
OLE DB draiveris 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Skatiet rakstu OLE DB draiveris SQL Server līdzeklim un Microsoft OLE DB draivera laidienu piezīmes serverim SQL Server |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005 līdz 2012 |
Novecojis, neizmantot |
|
OLE DB draiveris (SQLOLEDB) |
Novecojis, neizmantot |
ODBC atslēgvārdu kopsavilkums
Tālāk norādītajā tabulā ir apkopoti ODBC atslēgvārdi, ko atpazīst SQL Server, un to mērķis. Access atpazīst tikai apakškopu.
Atslēgvārds |
Apraksts |
Addr |
Tā servera tīkla adrese, kurā darbojas SQL Server instance. |
AnsiNPW |
Norāda ANSI definēto darbību lietojumu vērtību NULL salīdzinājumu apstrādei, rakstzīmju datu papildināšanai, brīdinājumiem un vērtību NULL konkatenācijai (Jā vai Nē). |
APP |
Tās lietojumprogrammas, kurā tiek izsaukts SQLDriverConnect, nosaukums. |
ApplicationIntent |
Deklarē lietojumprogrammas darba slodzes tipu, izveidojot savienojumu ar serveri (tikai lasāms vai lasāms/rakstāms). |
AttachDBFileName |
Pievienojamās datu bāzes primārā faila nosaukums. |
AutoTranslate |
Norāda, vai ANSI rakstzīmju virknes tiek sūtītas starp klientu vai serveri vai tulkotas uz unikodu (Jā vai Nē). |
Database |
Datu bāzes nosaukums. Apraksts Savienojuma mērķis. Draivera nosaukums, ko atgriež SQLDrivers. |
DSN |
Esoša ODBC lietotāja vai sistēmas datu avota nosaukums. Encrypt Norāda, vai dati jāšifrē pirms pārsūtīšanas pa tīklu (Jā vai Nē). |
Failover_Partner |
Kļūmjpārlēces partnera servera nosaukums, kas jāizmanto, ja nevar izveidot savienojumu ar primāro serveri. |
FailoverPartnerSPN |
Kļūmjpārlēces partnera SPN. |
Fallback |
Novecojis atslēgvārds. |
FileDSN |
Esoša ODBC faila datu avota nosaukums. Language SQL Server valoda. |
MARS_Connection |
Norāda vairākas aktīvo rezultātu kopas (multiple active result sets — MARS) SQL Server 2005 (9.x) vai jaunākas versijas savienojumam (Jā vai Nē). |
MultiSubnetFailover |
Norāda, vai izveidot savienojumu ar pieejamības grupas klausītāju SQL Server pieejamības grupā vai kļūmjpārlēces klastera instancē (Jā vai Nē). |
Net |
dbnmpntw norāda nosauktos programmkanālus, bet dbmssocn norāda TCP/IP. |
PWD |
SQL Server pieteikšanās parole. |
QueryLog_On |
Norāda ilglaicīgu vaicājumu reģistrēšanu (Jā vai Nē). |
QueryLogFile |
Pilns tā faila ceļš un faila nosaukums, kas jāizmanto, lai reģistrētu datus ilgtermiņa vaicājumos. |
QueryLogTime |
Ciparu rakstzīmju virkne, kas norāda slieksni (milisekundēs), lai reģistrētu ilgtermiņa vaicājumus. |
QuotedId |
Norāda, vai SQL Server izmanto ISO kārtulas, kas attiecas uz pēdiņu lietošanu SQL priekšrakstos (Jā vai Nē). |
Regional |
Norāda, vai SQL Server Native Client ODBC draiveris izmanto klienta iestatījumus, konvertējot valūtas, datuma vai laika datus uz rakstzīmes datiem (Jā vai Nē). |
SaveFile |
ODBC datu avota faila nosaukums, kurā tiek saglabāti pašreizējā savienojuma atribūti, ja savienojums ir sekmīgs. |
Server |
SQL Server instances nosaukums: serveris tīklā, IP adrese vai konfigurācijas pārvaldnieka aizstājvārds. |
ServerSPN |
Servera SPN. |
StatsLog_On |
Ļauj tvert SQL Server Native Client ODBC draivera veiktspējas datus. |
StatsLogFile |
Pilns tā faila ceļš un faila nosaukums, kas tiek lietots, lai reģistrētu SQL Server Native Client ODBC draivera veiktspējas statistiku. |
Trusted_Connection |
Norāda, vai pieteikšanās validācijai (Jā vai Nē) tiek lietots Windows autentifikācijas režīms vai SQL Server lietotājvārds vai parole. |
TrustServerCertificate |
Ja tiek izmantots kopā ar šifrēšanu, iespējo šifrēšanu, izmantojot pašparakstītu servera sertifikātu. |
UID |
SQL Server pieteikšanās vārds. |
UseProcForPrepare |
Novecojis atslēgvārds. |
WSID |
Darbstacijas identifikators, tā datora tīkla nosaukums, kurā atrodas lietojumprogramma. |
OLE DB atslēgvārdu kopsavilkums
Tālāk norādītajā tabulā ir apkopoti OLE DB atslēgvārdi, ko atpazīst SQL Server, un to mērķis. Access atpazīst tikai apakškopu.
Atslēgvārds |
Apraksts |
Addr |
Tā servera tīkla adrese, kurā darbojas SQL Server instance. |
APP |
Virkne, kas identificē lietojumprogrammu. |
ApplicationIntent |
Deklarē lietojumprogrammas darba slodzes tipu, izveidojot savienojumu ar serveri (tikai lasāms vai lasāms/rakstāms). |
AttachDBFileName |
Pievienojamās datu bāzes primārā faila nosaukums. |
AutoTranslate |
Konfigurē OEM/ANSI rakstzīmju tulkošanu (patiess vai aplams). |
Connect Timeout |
Laika apjoms (sekundēs), līdz tiek pabeigta datu avotu inicializācija. |
Current Language |
SQL Server valodas nosaukums. |
Data Source |
SQL Server instances nosaukums organizācijā. |
Database |
Datu bāzes nosaukums. |
DataTypeCompatibility |
Skaitlis, kas norāda datu tipa apstrādes režīmu, kas tiks lietots. |
Encrypt |
Norāda, vai dati jāšifrē pirms pārsūtīšanas pa tīklu (Jā vai Nē). |
FailoverPartner |
Tā kļūmjpārlēces servera nosaukums, kas tiek lietots spoguļdatu bāzēs. |
FailoverPartnerSPN |
Kļūmjpārlēces partnera SPN. |
Initial Catalog |
Datu bāzes nosaukums. |
Initial File Name |
Primārā faila nosaukums (ietverts pilns ceļa nosaukums) pievienotajā datu bāzē. |
Integrated Security |
Tiek izmantots Windows autentifikācijai (SSPI). |
Language |
SQL Server valoda. |
MarsConn |
Norāda vairākas aktīvo rezultātu kopas (multiple active result sets — MARS) SQL Server 2005 (9.x) vai jaunākas versijas savienojumam (Jā vai Nē). |
Net |
Tīkla bibliotēka, kas tiek lietota, lai izveidotu savienojumu ar organizācijas SQL Server instanci. |
Network Address |
SQL Server instances tīkla adrese organizācijā. |
PacketSize |
Tīkla pakešu lielums. Noklusējuma iestatījums ir 4096. |
Persist Security Info |
Norāda, vai ir iespējota drošības saglabāšana (patiess vai aplams). |
PersistSensitive |
Norāda, vai ir iespējota Persist Sensitive (patiess vai aplams). |
Provider |
SQL Server Native Client: SQLNCLI11. |
PWD |
SQL Server pieteikšanās parole. |
Server |
SQL Server instances nosaukums: serveris tīklā, IP adrese vai konfigurācijas pārvaldnieka aizstājvārds. |
ServerSPN |
Servera SPN. |
Timeout |
Laika apjoms (sekundēs), līdz tiek pabeigta datu avotu inicializācija. |
Trusted_Connection |
Norāda, vai pieteikšanās validācijai (Jā vai Nē) tiek lietots Windows autentifikācijas režīms vai SQL Server lietotājvārds vai parole. |
TrustServerCertificate |
Norāda, vai servera sertifikāts ir validēts (patiess vai aplams). |
UID |
SQL Server pieteikšanās vārds. |
Use Encryption for Data |
Norāda, vai dati jāšifrē pirms pārsūtīšanas pa tīklu (patiess vai aplams). |
UseProcForPrepare |
Novecojis atslēgvārds. |
WSID |
Darbstacijas identifikators, tā datora tīkla nosaukums, kurā atrodas lietojumprogramma. |