Prisiminkite jaunas dienas, kai abėcėlės raidelių sriuba buvo malonus maistas. Prisiminkite šias malonias akimirkas, nes mes šiek tiek išmanome abėcėlės raidelių sriubos skonio duomenų bazės versiją. Tolesniuose skyriuose išdėstyti pagrindai, kaip pasiekti duomenų bazę naudojant jungimosi eilutes ir naudoti duomenų bazės programavimo sąsają „Access VBA“ kode.
Šiame straipsnyje
ODBC tvarkyklė arba OLE DB teikimo įrankis
Programinė sąsaja su „SQL Server“ iš „Access“
ODBC tvarkyklės versijų santrauka
ODBC tvarkyklė arba OLE DB teikimo įrankis
Jungimosi eilutės ilgą laiką buvo netoli. Galite nustatyti suformatuotą jungimosi eilutę „Access“ vartotojo sąsajoje arba VBA kode. Jungimosi eilutė (ODBC arba OLE DB) perduoda informaciją tiesiogiai į duomenų bazę, pvz., serverio vietą, duomenų bazės pavadinimą, saugos tipą ir kitas naudingas parinktis. Pavyzdžiui:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Iš pradžių buvo „SQL Server Native Client“ (SNAC) atskira biblioteka, kurioje buvo įdiegtos ODBC ir OLEDB technologijos ir kuri vis dar yra prieinama „SQL Server“ 2005–2012 m. versijoms. Daugelis senstelėjusių programų naudojo SNAC ir vis dar palaikomas atgalinis suderinamumas, tačiau nerekomenduojame jų naudoti naujoms programoms kurti. Turėtumėte naudoti vėlesnes atskiras atsisiunčiamas ODBC tvarkyklių versijas.
ODBC tvarkyklės
„Open Database Connectivity“ (ODBC) yra protokolas, kurį naudodami „Access“ duomenų bazę galite prijungti prie išorinio duomenų šaltinio, pvz., „Microsoft SQL Server“. Paprastai, norint įtraukti jungimosi eilutę, naudojamas failų duomenų šaltinis (taip pat vadinamas DSN failais), tuo atveju, jei FILEDSN raktažodis naudojamas jungimosi eilutėje arba saugomas registre, tokiu naudojamas DSN raktažodis. Taip pat galite naudoti VBA, kad nustatytumėte šias ypatybes naudodami jungimosi eilutę „DSN-mažiau“ jungimosi eilutę.
Per kelerius metus ODBC tvarkyklės buvo išsiųstos trimis etapais:
-
Iki 2005 m. ODBC tvarkyklės išsiųstos su „Windows Data Access Components“ (WDAC) komponentais, kurie iš pradžių buvo vadinami „Microsoft Data Access Components“ (MDAC) komponentais. Šie komponentai vis dar siunčiami su „Windows“, kad būtų galimas atgalinis suderinamumas. Daugiau informacijos žr. „Microsoft" arba „Windows Data Access“ komponentai.
-
ODBC tvarkyklės išsiųstos su SNAC, skirtu „SQL Server 2005“ naudojant „SQL Server 2012“.
-
Po „SQL Server 2012“ ODBC tvarkyklės buvo išsiųstos atskirai ir apima naujų „SQL Server“ funkcijų palaikymą.
Jei naudojate naująją plėtotę, nenaudokite ODBC tvarkyklių iš pirmųjų dviejų etapų, naudokite ODBC tvarkykles, esančias trečiajame etape.
OLE DB teikimo įrankiai
Objektų susiejimas ir įterptis , duomenų bazė (OLE DB) yra naujesnis protokolas, kurį naudodami „Access“ duomenų bazę galite prijungti prie išorinio duomenų šaltinio, pvz., „Microsoft SQL Server“. OLE DB nereikalauja DSN, taip pat suteikia visišką prieigą prie ODBC duomenų šaltinių ir ODBC tvarkyklių.
Patarimas Paprastai naudojate dialogo langą Duomenų susiejimo ypatybės , kad įtrauktumėte OLE DB jungimosi eilutę. Nors iš „Access“ negalima atidaryti dialogo lango Duomenų susiejimo ypatybės , „Windows Explorer“ galite sukurti tuščią. .txt failą, pakeisti failo tipą į .udl, tada dukart spustelėti failą. Sukūrę jungimosi eilutę, pakeiskite failo tipą atgal į .txt.
Per kelerius metus OLE DB teikimo įrankiai buvo išsiųsti trimis etapais:
-
Iki 2005 m. OLE DB teikimo įrankiai išsiųsti su „Windows Data Access Components“ (WDAC) komponentais, kurie iš pradžių buvo vadinami „Microsoft Data Access Components“ (MDAC) komponentais.
-
OLE DB teikimo įrankiai išsiųsti naudojant „SQL Server 2005“ per „SQL Server 2017“. Jis buvo atšauktas 2011 m.
-
2017 m. „SQL Server“ OLE DB teikimo įrankio atšaukimas panaikintas.
Šiuo metu rekomenduojama naujų sprendimų kūrimo versija yra OLE DB tvarkyklė 18, skirta „SQL Server“.
Kaip optimizuoti našumą naudojant ODBC jungimosi eilutę
Norėdami optimizuoti našumą, sumažinkite tinklo srautą ir sumažinkite kelių vartotojų prieigą prie „SQL Server“ duomenų bazės, naudokite kuo daugiau jungimosi eilučių, kad būtų galima bendrinti jungimosi eilutes keliuose įrašų rinkiniuose. Nors „Ace“ tiesiog pereina prie jungimosi eilutės į serverį, jis nesupranta ir naudoja šiuos raktažodžius: DSN, DUOMENŲ BAZĖ, UID, PWD ir TVARKYKLĖ, kurie padės sumažinti kliento / serverio bendravimą.
Atminkite Jei nutrūksta ODBC ryšys su išoriniu duomenų šaltiniu, „Access“ automatiškai bando iš naujo prisijungti prie jo. Jei kartojimas pavyksta, galite toliau dirbti. Jei pakartoti nepavyksta, vis tiek galite dirbti su objektais, kurie nepalaiko ryšio. Norėdami iš naujo prisijungti, uždarykite ir iš naujo atidarykite „Access“.
Rekomendacijos naudojant ODBC ir OLE DB
Nenaudokite jungimosi eilutės ir duomenų bazių prieigos technologijų. Naudokite ODBC jungimosi eilutę, skirtą DAO. Naudokite ODBC jungimosi eilutę, skirtą ADO. Jei jūsų programa turi VBA kodą, kuris naudoja DAO ir ADO, tada naudokite ODBC tvarkyklę, skirtą DAO, ir OLE DB teikimo įrankį, skirtą ADO. Siekia gauti naujausią funkciją ir palaiko atitinkamai ODBC ir OLEBO.
ODBC naudoja sąlygų tvarkyklę ir OLE DB naudoja sąlygų teikimo įrankį. Sąlygose aprašomas tas pats programinės įrangos komponento tipas, bet negalima pakeisti jungimosi eilutės sintaksė. Naudokite tinkamą reikšmę kaip dokumentuotą.
Programinė sąsaja su „SQL Server“ iš „Access“
Yra du pagrindiniai programinės sąsajos su „SQL Server“ duomenų baze iš „Access“ būdai.
DAO
Duomenų prieigos objektas (DAO) pateikia abstrakčią sąsają su duomenų baze. „Microsoft“ duomenų prieigos objektai (DAO) yra pradinio programinio objekto modelio, kuris suteikia galimybę pasiekti „Access“ ir „SQL Server“ pagrindą, kad būtų galima kurti, naikinti, modifikuoti ir išvardyti objektus, lenteles, laukus, rodykles, ryšius, užklausas, ypatybes ir išorines duomenų bazes.
Daugiau informacijos žr. „Microsoft" duomenų prieigos nuorodos.
ADO
„ActiveX“ duomenų objektai (ADO) teikia aukšto lygio programavimo modelį ir jie pasiekiami „Access“ naudojant nuorodą į trečiosios šalies biblioteką. ADO paprasta mokyti ir įgalinama kliento programų prieiga ir duomenis valdymas iš įvairių šaltinių, įskaitant „Access“ ir „SQL Server“. Jos pagrindiniai privalumai yra paprastas naudojimas, didelis greitis, mažos atminties išlaidos ir mažas disko pėdsakas. ADO taip pat palaiko pagrindines kūrimo ir žiniatinkliu pagrįstų taikomųjų programų funkcijas.
Daugiau informacijos žr „Microsoft ActiveX“ duomenų objektų nuoroda ir „Microsoft ActiveX“ duomenų objektai (ADO).
Kurią pasirinksite?
Naudojant „Access“ sprendimą, kuris naudoja VBA kodą, kaip duomenų bazių sąsajos technologiją galite naudoti DAO, ADO arba abu. DAO ir toliau yra numatytoji „Access“ reikšmė. Pvz., visos formos ir ataskaitos bei „Access“ užklausos naudoja DAO. Bet kai perkelsite į „SQL Server“, apsvarstykite galimybę naudoti ADO, kad sprendimas būtų efektyvesnis. Pateikiame bendras gaires, kurios padės nuspręsti, kada naudoti DAO arba ADO.
Naudokite DAO, kai norite:
-
Kurti skaitymo / rašymo, susietąją formą nenaudojant VBA.
-
Pateikti vietinių lentelių užklausas.
-
Atsisiųsti duomenų į laikinas lenteles.
-
Naudoti tiesiogines užklausas kaip duomenų šaltinius ataskaitoms arba formoms tik skaitymo režimu.
-
Nustatyti ir naudoti „TableDef“ arba „Querydef“ objektą VBA.
Naudokite ADO, kai norite:
-
Naudoti papildomus optimizavimo būdus, pvz., vykdyti asinchronines operacijas.
-
Vykdyti DDL ir DML tiesiogines užklausas.
-
Tiesiogiai gauti „SQL Server“ duomenis tiesiogiai naudojant įrašų rinkinius VBA.
-
Rašyti paprastesnį tam tikrų užduočių, pvz., „Blobs“ transliacijos, kodą.
-
Tiesiogiai iškviesti įrašytą procedūrą su parametrais, naudojant komandų objektą VBA.
ODBC tvarkyklės versijų santrauka
Toliau pateiktoje lentelėje apibendrinama svarbi informacija apie ODBC tvarkyklės versijas, atsisiuntimo vietas ir funkcijų palaikymą. Įsitikinkite, kad naudojate tinkamą (64 bitų arba 32 bitų) tvarkyklės versiją, pagrįstą „Windows“, bet ne „Office“. Jei naudojate 32 bitų „Access“ 64 bitų „Windows“ versijoje, įdiekite 64 bitų tvarkykles, kurios apima „Access“ reikalingus 32 bitų komponentus.
Daugiau informacijos žr. Jungimosi eilutės raktažodžių naudojimas su „SQL Server“ vietiniu klientu, Leidimo pastabos, skirtos ODBC su „SQL Server“ sistemoje „Windows“ (V17) ir „Microsoft“ ODBC tvarkyklės, skirtos „SQLServer“ funkcijoms „Windows“ (V13, 11).
OLE DB tvarkyklės teikimo įrankio versijos
Toliau pateiktoje lentelėje apibendrinama svarbi informacija apie OLE DB teikimo įrankių versijas, atsisiuntimo vietas ir funkcijų palaikymą. Įsitikinkite, kad naudojate tinkamą (64 bitų arba 32 bitų) tvarkyklės versiją, pagrįstą „Windows“, bet ne „Office“. Jei naudojate 32 bitų „Access“ 64 bitų „Windows“ versijoje, įdiekite 64 bitų tvarkykles, kurios apima „Access“ reikalingus 32 bitų komponentus.
Daugiau informacijos žr. Jungimosi eilutės raktažodžių naudojimas su „SQL Server“ vietiniu klientu.
OLE DB teikimo įrankiai |
Versija |
Atsisiųsti |
Naujos funkcijos |
OLE DB tvarkyklė 18.2.1 (MSOLEBSQL) |
SQL Server 2017 |
Žr. OLE DB tvarkyklės, skirtos „SQL Server“, funkcijos ir Leidimo pastabos, skirtos „Microsoft“ OLE DB tvarkyklei „SQL Server“ |
|
„SQL Server“ vietinis klientas (SQLNCLI) |
„SQL Server“ nuo 2005 iki 2012 |
Atsisakyta, nenaudokite |
|
OLE DB tvarkyklė (SQLOLEDB) |
Atsisakyta, nenaudokite |
ODBC raktažodžių suvestinė
Toliau pateiktoje lentelėje apibendrinami ODBC raktažodžiai, kuriuos atpažįsta „QL Server“, ir jų paskirtis. „Access“ atpažįsta tik pogrupį.
Raktažodis |
Aprašas |
Addr |
Serverio, kuriame veikia „SQL Server“ egzempliorius, tinklo adresas. |
AnsiNPW |
Nurodo ANSI apibrėžtų veikimo galimybių, skirtų NULL palyginimams tvarkyti, simbolių duomenims užpildyti, įspėjimams ir NULL sujungimui (taip arba ne). |
APP |
Taikomosios programos, kuri iškviečia „SQLDriverConnect“, pavadinimas. |
ApplicationIntent |
Deklaruoja taikomosios programos darbo krūvį, kai jungiasi prie serverio (tik skaityti arba skaityti ir rašyti). |
AttachDBFileName |
Galimos pridėti duomenų bazės pirminio failo vardas. |
AutoTranslate |
Nurodo, ar iš kliento arba serverio siunčiamos ANSI simbolių eilutės, ar išverstos į „Unicode“ (Taip ar Ne). |
Duomenų bazė |
Duomenų bazės pavadinimas. Aprašas Jungimosi paskirtis. Tvarkyklė „SQLDrivers“ pateiktos tvarkyklės pavadinimas. |
DSN |
Esamo ODBC vartotojo arba sistemos duomenų šaltinio pavadinimas. Šifruoti Nurodykite, ar duomenys turėtų būti užšifruoti prieš siunčiant juos tinklu (taip arba ne). |
Failover_Partner |
Permetimo partnerio serverio, kuris bus naudojamas, jei jungimosi negalima sukurti pirminiame serveryje, pavadinimas. |
FailoverPartnerSPN |
Permetimo partnerio SPN. |
Atsarginis |
Atšauktas raktažodis. |
FileDSN |
Esamo ODBC failo duomenų šaltinio pavadinimas. Kalba „SQL Server“ kalba. |
MARS_Connection |
Nurodo keletą aktyvių „SQL Server 2005“ (9.x) arba vėlesnės versijos (taip arba ne) jungimosi rezultatų rinkinių (MARS). |
MultiSubnetFailover |
Nurodo, ar prisijungti prie „SQL Server“ prieinamumo grupės prieinamumo grupės klausytojo ar prie „Failover Cluster instance“ (taip arba ne). |
Net |
dbnmpntw nurodo pavadintą kanalą, o dbmssocn nurodo TCP/IP. |
PWD |
„SQL Server“ prisijungimo slaptažodis. |
QueryLog_On |
Nurodo ilgų užklausų registravimą (taip arba ne). |
QueryLogFile |
Visas failo, kurį norite naudoti, kad galėtumėte registruoti duomenis ilgose užklausose, adresas ir failo vardas. |
QueryLogTime |
Skaitmenų simbolio eilutė, nurodanti, kiek laiko (milisekundėmis) yra skirta registruoti ilgoms užklausoms. |
Pasiūlymo ID |
Nurodo, ar SQL serveris naudoja ISO taisykles, susijusias su kabučių naudojimu SQL sakiniuose (taip arba ne). |
Regioninis |
Nurodo, ar „SQL Server Native Client“ ODBC tvarkyklė naudoja kliento parametrus, kai konvertuoja valiutos, datos ar laiko duomenis į simbolio duomenis (taip arba ne). |
Įrašyti failą |
ODBC duomenų šaltinio failo, į kurį yra įrašomi esamo ryšio atributai, pavadinimas, jei ryšys yra sėkmingas. |
Serveris |
„SQL Server“ egzemplioriaus pavadinimas: Serveris tinkle, IP adresas arba konfigūracijos tvarkytuvo pseudonimas. |
ServerSPN |
Serverio SPN. |
StatsLog_On |
Įgalinami užfiksuoti „SQL Server Native Client“ ODBC tvarkyklės produktyvumo duomenys. |
Statdevifile |
Visas failo kelias ir failo, naudojamo „SQL Server Native Client“ ODBC tvarkyklės produktyvumo statistikai įrašyti, vardas. |
Trusted_Connection |
Nurodo, ar „Windows“ autentifikavimo režimas arba „SQL Server“ vartotojo vardas arba slaptažodis naudojamas prisijungimui patvirtinti (taip arba ne). |
TrustServerCertificate |
Kai naudojama su šifravimu, įgalina šifravimą naudojant vartotojo pasirašomą serverio sertifikatą. |
UID |
„SQL Server“ prisijungimo vardas. |
UseProcForPrepare |
Atšauktas raktažodis. |
WSID |
Darbo vietos identifikatorius, kompiuterio, kuriame yra taikomoji programa, tinklo pavadinimas. |
OLE DB raktažodžių suvestinė
Toliau pateiktoje lentelėje apibendrinami OLE DB raktažodžiai, kuriuos atpažįsta „QL Server“, ir jų paskirtis. „Access“ atpažįsta tik pogrupį.
Raktažodis |
Aprašas |
Addr |
Serverio, kuriame veikia „SQL Server“ egzempliorius, tinklo adresas. |
APP |
Programą identifikuojanti eilutė. |
ApplicationIntent |
Deklaruoja taikomosios programos darbo krūvį, kai jungiasi prie serverio (tik skaityti arba skaityti ir rašyti). |
AttachDBFileName |
Galimos pridėti duomenų bazės pirminio failo vardas. |
AutoTranslate |
Konfigūruoja OĮG/ANSI simbolių vertimą (TRUE (teisinga) arba FALSE (klaidinga). |
Prisijungti skirtasis laikas |
Laikas (sekundėmis), kol laukiama, kol bus baigta duomenų šaltinio iniciacija. |
Dabartinė kalba |
„SQL Server“ kalbos pavadinimas. |
Duomenų šaltinis |
Organizacijoje esančio „SQL Server“ egzemplioriaus pavadinimas. |
Duomenų bazė |
Duomenų bazės pavadinimas. |
DataTypeCompatibility |
Skaičius, nurodantis duomenų tipo tvarkymo režimą, kuris bus naudojamas. |
Šifruoti |
Nurodykite, ar duomenys turėtų būti užšifruoti prieš siunčiant juos tinklu (taip arba ne). |
FailoverPartner |
Permetimo serverio, naudojamo duomenų bazės atvaizdavimo tikslais, pavadinimas. |
FailoverPartnerSPN |
Permetimo partnerio SPN. |
Pradinis katalogas |
Duomenų bazės pavadinimas. |
Pradinis failo vardas |
Pridedamos duomenų bazės pradinis failo vardas (apima visa duomenų bazės kelio pavadinimą). |
Integruota sauga |
Naudota „Windows“ autentifikavimui (SSPI). |
Kalba |
„SQL Server“ kalba. |
MarsConn |
Nurodo keletą aktyvių „SQL Server 2005“ (9.x) arba vėlesnės versijos (taip arba ne) jungimosi rezultatų rinkinių (MARS). |
Tinklas |
Tinklo biblioteka, naudojama ryšiui su „ SQL Server“ organizacijoje sukurti. |
Tinklo adresas |
Organizacijoje esančio „SQL Server“ egzemplioriaus tinklo pavadinimas. |
PacketSize |
Tinklo paketo dydis. Numatytoji reikšmė yra 4096. |
Išlieka saugos informacija |
Nurodo, ar įgalinta sauga (TRUE (teisinga) arba FALSE (klaidinga). |
PersistSensitive |
Nurodo, ar įgalintas slaptumas (TRUE (teisinga) arba FALSE (klaidinga). |
Teikimo įrankis |
„SQL Server Native Client“ reikia SQLNCLI11. |
PWD |
„SQL Server“ prisijungimo slaptažodis. |
Serveris |
„SQL Server“ egzemplioriaus pavadinimas: Serveris tinkle, IP adresas arba konfigūracijos tvarkytuvo pseudonimas. |
ServerSPN |
Serverio SPN. |
Skirtasis laikas |
Laikas (sekundėmis), kol laukiama, kol bus baigta duomenų šaltinio iniciacija. |
Trusted_Connection |
Nurodo, ar „Windows“ autentifikavimo režimas arba „SQL Server“ vartotojo vardas arba slaptažodis naudojamas prisijungimui patvirtinti (taip arba ne). |
TrustServerCertificate |
Nurodo, ar serverio sertifikatas patvirtintas (TRUE (teisinga) arba FALSE (klaidinga). |
UID |
„SQL Server“ prisijungimo vardas. |
Duomenų šifravimo naudojimas |
Nurodykite, ar duomenys turėtų būti užšifruoti prieš siunčiant juos tinklu (TRUE (teisinga) arba FALSE (klaidinga). |
UseProcForPrepare |
Atšauktas raktažodis. |
WSID |
Darbo vietos identifikatorius, kompiuterio, kuriame yra taikomoji programa, tinklo pavadinimas. |