Meenutage neid muretuid lapsepõlveaegu, kui tähestikusupi söömine palju lõbu pakkus. Nende mõnusate mälestuste taustal saate nüüd maitsta tähestikusupi andmebaasiversiooni. Järgnevates jaotistes käsitletakse seda, kuidas saada andmebaasi ühendusstringide abil ja kuidas kasutada andmebaasi programmeerimise liidest Accessi VBA-koodis.
Selle artikli teemad
ODBC draiveri või OLE DB pakkuja kasutamine
SQL Serverisse pääsemine programmilise liidese abil Accessi kaudu
ODBC-draiverite versioonide ülevaade
ODBC draiveri või OLE DB pakkuja kasutamine
Ühendusstringe on kasutatud juba pikka aega. Vormindatud ühendusstringi saate defineerida Accessi kasutajaliideses või VBA-koodis. Ühendusstring – olenemata sellest, kas tegu on ODBC või OLE DB-ga – edastab teabe otse andmebaasile (nt serveri asukoht, andmebaasi nimi, turbe tüüpi ja muud kasulikud suvandid). Näide.
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Alguses oli SQL Server Native Client (SNAC) iseseisev teek, mis sisaldas ODBC- ja OLEDB- tehnoloogiaid, ja see on endiselt saadaval SQL Serveri versioonidele 2005–2012. Paljud pärandrakendused kasutasid SNAC-i ja seda toetatakse endiselt tagasiühilduvuse tagamiseks, kuid me ei soovita seda uute rakneduste arendamiseks kasutada. Peaksite hiljem kasutama eraldi allalaaditavaid ODBC draiverite versioone.
ODBC-draiverid
Avatud andmebaasipöördus (ODBC) on protokoll, mida saab kasutada Accessi andmebaasi ühendamiseks välise andmeallikaga (nt Microsoft SQL Serveriga). Tavaliselt kasutatakse ühendusstringi lisamiseks andmeallikafaile (ehk DSN-faile), mis juhul kasutatakse ühendusstringi jaoks märksõna FILEDSN, või talletatakse see registris, sellisel juhul kasutatakse märksõna DSN. Nende atribuutide määramiseks saate kasutada ka VBA-d, rakendades ilma nn DSN-vaba ühendusstringi.
Läbi aastate on ODBC draivereid välja antud kolmel moel.
-
Enne 2005. aastat saadeti ODBC draiverid Windowsi andmejuurdepääsukomponentidega (WDAC), mida algselt nimetati Microsofti andmejuurdepääsukomponentideks (MDAC). Neid komponente antakse tagasiühilduvuse tagamiseks Windowsiga välja endiselt. Lisateavet leiate teemast Microsoft või Windowsi andmepääsukomponendid.
-
ODBC draiverid, mis väljastati SNAC-iga versioonidele SQL Server 2005 kuni SQL Server 2012.
-
Pärast väljaannet SQL Server 2012 on ODBC draivereid välja antud eraldi ja neil on SQL Serveri funktsioonide tugi.
Uute arenduste puhul soovitame ODBC-draivereid esimese kahe etapi puhul vältida (kasutada neid alles kolmandas etapis).
OLE DB pakkujad
ODBC (Object Linking and Embedding Database) on uuem protokoll, mida saab kasutada Accessi andmebaasi ühendamiseks välise andmeallikaga (nt Microsoft SQL Serveriga). OLE DB ei nõua DSN-i ja võimaldab täielikku juurdepääsu ODBC andmeallikatele ja ODBC-draiveritele.
Näpunäide Üldjuhul kasutatakse OLE DB andmebaasi lisamiseks dialoogiboksi Andmete linkimise atribuudid. Ehkki dialoogiboksi Andmelingiatribuudid avamine pole Windows Exploreris võimalik, võite luua tühja txt-faili, muuta faili tüübi .udl-iks ja siis faili topeltklõpsata. Peale ühendusstringi loomist muutke failitüüp tagasi tüübiks .txt.
OLE DB pakkujaid on aastate jooksul välja antud kolmes etapis.
-
Enne 2005. aastat saadeti OLE DB draiverid Windowsi andmejuurdepääsukomponentidega (WDAC), mida algselt nimetati Microsofti andmejuurdepääsukomponentideks (MDAC).
-
OLE DB draiverid, mis väljastati versioonidega SQL Server 2005 kuni SQL Server 2017. See aegus 2011. aastal.
-
2017. aastal loeti SQL SQL Serveri OLE DB iganenuks.
Praegu soovitatakse uue lahenduse arendamiseks SQL Serveri jaoks versiooni OLE DB Driver 18.
Tööomaduste optimeerimine ODBC ühendusstringide abil
Jõudluse optimeerimiseks, võrguliikluse minimeerimiseks ja SQL serveri andmebaasi mitme kasutaja poolt korraga avamise vältimiseks kasutage nii vähe ühendusstringe kui võimalik, jagades ühendusstringe mitme kirjekomplekti jaoks. Kuigi Ace edastab ühendusstringi lihtsalt serverile, mõistab ja kasutab see järgmisi märksõnu. DSN, DATABASE, UID, PWD ja DRIVER, et aidata minimeerida kliendi/serveri suhtlust.
Märkus Kui ODBC ühendus välise andmeallikaga katkeb, püüab Access automatselt ühenduse taastada. Kui ühendamine õnnestub, saate tööd jätkata. Kui ühendamine ei õnnestu, saate tööd jätkata objektidega, mis ei sõltu ühendusest. Ühenduse taastamiseks sulgege Access ja avage see siis uuesti.
Soovitused ODBC ja OLE DB koos kasutajatele
Pöörake tähelepanu sellele, et te ei ajaks segi ühendusstringe ja andmebaasi juurdepääsutehnoloogiaid. Kasutage DAO jaoks ODBC ühendusstringi. Kasutage DAO jaoks OLE DB ühendusstringi. Kui teie rakenduses on nii DAO-d kui ka ADO-d kasutav VBA-kood, siis kasutage DAO jaoks ODBC draiverit ja ADO jaoks OLE DB draiverit. Kasutage võimalusel alati nii ODBC kui ka OLEDB puhul uusimaid funktsioone ja tugilahendusi.
ODBC kasutab mõistet „draiver“ ja OLE DB kasutab mõistet „pakkuja“. Terminid kirjeldavad sama tüüpi tarkvarakomponenti, kuid need pole ühenduse stringi süntaksis asendatavad. Kasutage õiget väärtust (nagu näidatud).
SQL Serverisse pääsemine programmilise liidese abil Accessi kaudu
Programmilise liidese abil Accessi kaudu SQL Serverisse pääsemiseks on ennekõike kaks võimalust.
DAO
DAO (data access object – andmepääsuobjekt) tagab andmebaasi jaoks abstraktse liidese. Microsoft Data Access Objects (DAO) on programmeerimistmudel, mis võimaldab kasutada Accessi ja SQL Serverit süvatasandil: luua, kustutada, muuta ja loendada objekte, tabeleid, välju, indekseid, seoseid, päringuid, atribuute ja väliseid andmebaase.
Lisateavet leiate teemast Microsofti andmepääsukomponendid.
ADO
ActiveX-i andmeobjektid (ADO) võimaldavad kõrgel tasemel programmeerimismudelite kasutamist ja on Accessis saadaval viitega kolmanda osapoole teegile. ADO on lihtne õppida ja võimaldab klientrakendustel pääseda juurde ja andmeid töödelda mitmesugustest allikatest, sh Accessist ja SQL Serverist. Selle peamine eelis on kasutusmugavus, suur kiirus, väike mälumaht ja ketta väike jalajälg. ADO toetab ka ehitamise põhifunktsioone ja veebipõhiseid rakendusi.
Lisateavet leiate teemadest Microsofti ActiveX Data Objects ja Microsofti ActiveX Data Objects (ADO).
Millist võimalust kasutada?
Accessi lahenduses, mis rakendab VBA-koodi, saate andmebaasi liidese tehnoloogiana kasutada DAO-d või ADO-d või ka mõlemat. DAO on endiselt Accessis vaikevalik. Näiteks kasutavad kõik vormid, aruanded ja Accessi päringud DAO-d. Kui migreerite SQL Serverisse, kaaluge oma lahenduse tõhusamaks muutmiseks ADO kasutamist. Siin on üldised juhised, mis aitavad otsustada, millal valida DAO ja millal ADO.
Millal valida DAO?
-
Lugemise/kirjutamise/sidumise vormi loomine ilma VBA-ta
-
Päringu kohalikud tabelid
-
Andmete allalaadimine ajutistesse tabelitesse
-
Päringute või vormide andmeallikate kasutamine kirjutuskaitstud režiimis
-
TableDef-i või Querydef-i objekti määramine ja kasutamine VBA-s
Millal valida ADO?
-
Täiendav optimeerimine (näiteks asünkroonsete toimingute tegemine)
-
DDL-i ja DML-i läbivate päringute käitamine
-
SQL Serveri andmete hankimine otse VBA kirjekomplektide kaudu
-
Teatud ülesannete jaoks lihtsamate koodide loomine (näiteks Blobsi voogedastus)
-
Salvestatud toimingu otse tellimine, parameetritega, VBA käsuobjekti abil
ODBC-draiverite versioonide ülevaade
Järgmisest tabelist leiate ODBC-draiverite versioonid, allalaaditavate failide asukohad ja funktsioonide toe teabe. Veenduge, et kasutate sobiva bittide arvuga draiveriversiooni (64-bitine või 32-bitine), mis põhineb Windowsil (mitte Office'il). Kui kasutate 32-bitist Accesssi 64-bitise Windowsiga, installige 64-bitised draiverid, millel on Accessi jaoks vajalikud 32-bitised komponendid.
Lisateavet leiate teemadest SQL Server Native Clientiga ühendusstringi märksõnade kasutamine, SQL Serveri ODBC Windowsis – versioonimärkmed (V17), and SQL Serveri jaoks mõeldud Microsofti ODBC draiver Windowsis – funktsioonid (V13, 11).
OLE DB pakkujate versioonide ülevaade
Järgmises tabelis on esitatud oluline teave OLE DB pakkujate versioonide, allalaaditavate kohtade ja funktsioonide toe kohta. Veenduge, et kasutate sobiva bittide arvuga draiveriversiooni (64-bitine või 32-bitine), mis põhineb Windowsil (mitte Office'il). Kui kasutate 32-bitist Accesssi 64-bitise Windowsiga, installige 64-bitised draiverid, millel on Accessi jaoks vajalikud 32-bitised komponendid.
Lisateavet leiate teemast SQL Server Native Clientiga ühendusstringi märksõnada kasutamine.
OLE DB pakkuja |
Versioon |
Allalaadimine |
Uued funktsioonid |
OLE DB Driver 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
SQL Serveri jaoks mõeldud OLE DB – funktsioonid ja SQL Serveri jaoks mõeldud Microsofti OLE DB draiver – versioonimärkmed |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005–2012 |
Aegunud, mitte kasutada |
|
OLE DB-draiver (SQLOLEDB) |
Aegunud, mitte kasutada |
ODBC märksõnade kokkuvõte
Järgmises tabelis on toodud SQL Serveri tuvastatavad ODBC märksõnad ja nende otstarve. Access tuvastab vaid allosa.
Märksõna |
Kirjeldus |
Addr |
SQL Serveri eksemplari käitava serveri võrguaadress. |
AnsiNPW |
Määrab ANSI-defineeritud käitumisviisid null-võrdluste tegemiseks, tähtandmetega täitmiseks, hoiatuste jaoks ja null-ühendamise jaoks („jah“ või „ei“). |
APP |
SQLDriverConnecti kutsuva rakenduse nimi. |
ApplicationIntent |
Teatab rakenduse töökoormuse failitüübi, kui loote ühenduse serveriga (ReadOnly või ReadWrite) |
AttachDBFileName |
Manustatava andmebaasi põhifaili nimi. |
AutoTranslate |
Määrab, kas ANSI-märkidega string edastatakse klientrakenduse ja serveri vahel või tõlgitakse Unicode’i („jah“ või „ei“). |
Andmebaas |
Andmebaasi nimi. Kirjeldus Ühenduse otstarve Draiver Draiveri nimi nii, nagu SQLDrivers selle tagastab |
DSN |
Olemasoleva ODBC kasutaja või süsteemi andmeallika nimi Krüpti Määrab, kas andmed enne võrgu kaudu saatmist krüptitakse või mitte (Jah või Ei). |
Failover_Partner |
Rikkeümberlülituse partneri serveri nimi, mida kasutada, kui põhiserveriga ühendust luua ei õnnestu. |
FailoverPartnerSPN |
SPN rikkeümberlülituse partneri jaoks. |
Fallback |
Aegunud märksõna |
FileDSN |
Olemasoleva ODBC faili andmeallika nimi Keel SQL Serveri keele nimi |
MARS_Connection |
Määratleb ühenduse MARS-id SQL Server 2005 (9.x) või hilisema versioonid jaoks („jah“ või „ei“). |
MultiSubnetFailover |
Määrab, kas ühendada SQL Serveri saadavusrühma või Failover Cluster Instance’iga („jah“ või „ei“). |
Net |
dbnmpntw tähistab nimelisi torusid ja dbmssocn tähistab TCP/IP-d. |
PWD |
SQL Serveri sisselogimiskonto parool |
QueryLog_On |
Määrab pikaajaliste päringute logimise („jah“ või „ei“) |
QueryLogFile |
Pikaajaliste päringute andmete logimiseks kasutatava faili täielik failiteenimi ja nimi. |
QueryLogTime |
Arvu-märgistring, mis määrab pikaajaliste päringute logimise läve (millisekundites). |
QuotedId |
Määrab, kas SQL-Server kasutab SQL-lausete puhul jutumärkide valimisel ISO-eeskirju („jah“ või „ei“). |
Regional |
Määrab, kas SQL Server Native Client ODBC draiver kasutab valuuta-, kuupäeva- või kellaajaandmete teisendamisel klientrakenduse sätteid („jah“ või „ei“). |
SaveFile |
ODBC andmeallika faili nimi – selle faili, kuhu praeguse ühenduse atribuudid eduka ühendamise korral salvestatakse. |
Server |
SQL Serveri eksemplari nimi Võrguserver, IP-aadress või Configuration Manageri pseudonüüm. |
ServerSPN |
Serveri SPN |
StatsLog_On |
Võimaldab SQL Server Native Clienti ODBC draiveri jõudlusandmete jäädvustamist. |
StatsLogFile |
SQL Server Native Clienti ODBC draiveri jõudlusandmete jäädvustamiseks kasutatud faili nimi ja failitee. |
Trusted_Connection |
Määrab, kas logimise valideerimiseks kasutatakse Windowsi autentimise režiimi või SQL Serveri kasutajanime või parooli („jah“ või „ei“). |
TrustServerCertificate |
Võimaldab krüptimisfunktsiooniga kasutamisel rakendada iseallkirjastatavat serveri sertifikaati. |
UID |
SQL Serveri sisselogimiskonto nimi |
UseProcForPrepare |
Aegunud märksõna |
WSID |
Tööjaama identifikaator, selle arvuti võrgu nimi, kus rakendus asub. |
OLE DB märksõnad
Järgmises tabelis on toodud SQL Serveri tuvastatavad OLE DB märksõnad ja nende otstarve. Access tuvastab vaid allosa.
Märksõna |
Kirjeldus |
Addr |
SQL Serveri eksemplari käitava serveri võrguaadress. |
APP |
Rakenduse tuvastav string |
ApplicationIntent |
Teatab rakenduse töökoormuse failitüübi, kui loote ühenduse serveriga (ReadOnly või ReadWrite) |
AttachDBFileName |
Manustatava andmebaasi põhifaili nimi. |
AutoTranslate |
Konfigureerib OEM-i/ANSI-märkide tõlkimise („tõene“ või „väär“) |
Connect Timeout |
Andmeallika loomise lõpuleviimiseks vajalik aeg (sekundites). |
Current Language |
SQL Serveri keele nimi |
Andmeallikas |
SQL Serveri eksemplari nimi ettevõttes |
Andmebaas |
Andmebaasi nimi. |
DataTypeCompatibility |
Arv, mis tähistab andmete töötlemise tüübi režiimi |
Encrypt |
Määrab, kas andmed enne võrgu kaudu saatmist krüptitakse või mitte (Jah või Ei). |
FailoverPartner |
Andmebaasi peegeldamisel kasutatava rikkeümberlülituse serveri nimi |
FailoverPartnerSPN |
SPN rikkeümberlülituse partneri jaoks. |
Initial Catalog |
Andmebaasi nimi. |
Algne failinimi |
Manustatava andmebaasi põhifaili nimi (terve failitee nimi). |
Integrated Security |
Kasutatakse Windowsi autentimiseks (SSPI) |
Keel |
SQL Serveri keele nimi |
MarsConn |
Määratleb ühenduse MARS-id SQL Server 2005 (9.x) või hilisema versiooni jaoks („jah“ või „ei“). |
Net |
Võrgu teek, mida kasutatakse ettevõtte SQL Serveri eksemplariga ühenduse loomiseks |
Network Address |
Ettevõtte SQL Serveri võrguaadressi nimi. |
PacketSize |
Võrgupaketi maht. Vaikeväärtus on 4096. |
Persist Security Info |
Määrab, kas püsiva turbe funktsioon on lubatud („tõene“ või „väär“). |
PersistSensitive |
Määrab, kas püsiva tundlikkuse funktsioon on lubatud („tõene“ või „väär“). |
Provider |
SQL Server Native Clienti puhul peaks see olema SQLNCLI11. |
PWD |
SQL Serveri sisselogimiskonto parool |
Server |
SQL Serveri eksemplari nimi Võrguserver, IP-aadress või Configuration Manageri pseudonüüm. |
ServerSPN |
Serveri SPN |
Timeout |
Andmeallika loomise lõpuleviimiseks vajalik aeg (sekundites). |
Trusted_Connection |
Määrab, kas logimise valideerimiseks kasutatakse Windowsi autentimise režiimi või SQL Serveri kasutajanime või parooli („jah“ või „ei“). |
TrustServerCertificate |
Määrab, kas serveri sertifikaat on valideeritud („tõene“ või „väär“). |
UID |
SQL Serveri sisselogimiskonto nimi |
Use Encryption for Data |
Määrab, kas andmed enne võrgu kaudu saatmist krüptitakse või mitte (True või False). |
UseProcForPrepare |
Aegunud märksõna |
WSID |
Tööjaama identifikaator, selle arvuti võrgu nimi, kus rakendus asub. |