Muistatko lapsuuden auvoiset ajat, jolloin salmiakkiaakkoset suurta herkkua? Pidä nämä iloiset ajatukset mielessäsi, kun otamme pienet maistiaiset salmiakkiaakkosten tietokantaversiosta. Seuraavissa osioissa ovat perustiedot tietokannan käyttämisestä yhteysmerkkijonojen avulla ja tietokannan ohjelmointikäyttöliittymän käyttämisestä Accessin VBA-koodissa.
Tämän artikkelin sisältö
ODBC-ohjaimen tai OLE DB -palvelun käyttäminen
Ohjelmallinen liityntä SQL Serveriin Accessista
Yhteenveto ODBC-ohjainversioista
ODBC-ohjaimen tai OLE DB -palvelun käyttäminen
Yhteysmerkkijonoja on käytetty pitkään. Voit määrittää muotoillun yhteysmerkkijonon joko Accessin käyttöliittymässä tai VBA-koodissa. Yhteysmerkkijono (joko ODBC tai OLE DB) siirtää suoraan tietokantaan tietoja, kuten palvelimen sijainnin, tietokannan nimen, suojaustyypin ja muita hyödyllisiä asetuksia. Esimerkki:
ODBC;DRIVER=SQL Server;SERVER="MyServer";DATABASE="MyHRdb";TRUSTED_CONNECTION=Yes
Provider=SQLOLEDB;Data Source=MyServer;Initial Catalog=MyHRdb; Integrated Security=SSPI;
Ensin oli SQL Server Native Client (SNAC), erillinen kirjasto, joka sisälsi ODBC- ja OLEDB-teknologioita ja joka on edelleen käytössä SQL Server -versioissa 2005–2012. Useissa vanhoissa sovelluksissa käytetään SNAC-kirjastoa, ja sitä tuetaan edelleen yhteensopivuuden varmistamiseksi, mutta emme suosittele sen käyttämistä uusien sovellusten kehittämiseen. Sinun tulisi käyttää uudempia, ladattavia ODBC-ohjainversioita.
ODBC-ohjaimet
Open Database Connectivity (ODBC) on protokolla, jonka avulla yhdistät Access-tietokannan ulkoiseen tietolähteeseen, kuten Microsoft SQL Serveriin. Yleensä käytät tiedostotietolähteitä (kutsutaan myös DSN-tiedostoiksi) yhteysmerkkijonon lisäämiseen, jolloin FILEDSN-avainsanaa käytetään yhteysmerkkijonossa tai se tallennetaan rekisteriin, jolloin käytetään DSN-avainsanaa. Vaihtoehtoisesti voit määrittää nämä ominaisuudet VBA:n avulla käyttäen yhteysmerkkijonoa ilman DSN-nimeä.
Vuosien kuluessa ODBC-ohjaimia on toimitettu kolmessa vaiheessa:
-
Ennen vuotta 2005 ODBC-ohjaimet toimitettiin Windows Data Access Components (WDAC) -komponenttien mukana. Näitä kutsuttiin alun perin Microsoft Data Access Components (MDAC) -komponenteiksi. Nämä osat toimitetaan edelleen Windowsin mukana, jotta yhteensopivuus aiempien versioiden kanssa säilyy. Lisätietoja on artikkelissa Microsoft tai Windows Data Access Components.
-
SQL Server 2005:n – SQL Server 2012:n SNAC-kirjaston mukana toimitettavat ODBC-ohjaimet.
-
SQL Server 2012:n jälkeen ODBC-ohjaimet on toimitettu erikseen, ja ne ovat sisältäneet tuen uusille SQL Serverin ominaisuuksille.
Vältä uusien sovellusten kehittämisessä kahden ensimmäisen vaiheen ODBC-ohjaimia ja käytä kolmannen vaiheen ODBC-ohjaimia.
OLE DB -palvelut
Database (OLE DB) on uudempi protokolla, jonka avulla yhdistät Access-tietokannan ulkoiseen tietolähteeseen, kuten Microsoft SQL Serveriin. OLE DB ei vaadi DSN:ää, ja se tarjoaa myös täydet käyttöoikeudet ODBC-tietolähteisiin ja ODBC-ohjaimiin.
Vihje OLE DB -yhteysmerkkijono lisätään yleensä Tietolinkin ominaisuudet -valintaikkunassa. Vaikka Tietolinkin ominaisuudet -valintaikkunaa ei voi avata Accessista, voit luoda Windowsin Resurssienhallinnassa tyhjän .txt-tiedoston, muuttaa tiedostotyypiksi .udl-tyypin ja sitten kaksoisnapsauttaa tiedostoa. Kun olet luonut yhteysmerkkijonon, muuta tiedostotyyppi takaisin .txt-tyypiksi.
Vuosien kuluessa OLE DB -palvelut on toimitettu kolmessa vaiheessa:
-
Ennen vuotta 2005 OLE DB -palvelut toimitettiin Windows Data Access Components (WDAC) -komponenttien mukana. Näitä kutsuttiin alun perin Microsoft Data Access Components (MDAC) -komponenteiksi.
-
OLE DB -palvelut toimitettiin SQL Server 2005:n – SQL Server 2017:n mukana. Se poistettiin käytöstä vuonna 2011.
-
Vuonna 2017 SQL Serverin OLE DB -palvelun käytöstä poisto peruutettiin.
Tällä hetkellä uusien ratkaisujen kehitykseen suositeltava versio on SQL Serverin OLE DB -ohjain 18.
Suorituskyvyn optimointi ODBC-yhteysmerkkijonon avulla
Käytä mahdollisimman vähän yhteysmerkkijonoja jakamalla yhteysmerkkijonot useille tietuejoukoille, jotta voit optimoida suorituskyvyn, minimoida verkkoliikenteen ja vähentää useiden käyttäjien pääsyä SQL Server -tietokantaan. Vaikka Ace vain välittää yhteysmerkkijonon palvelimeen, se ymmärtää ja käyttää seuraavia avainsanoja: DSN, DATABASE, UID, PWD ja DRIVER auttavat vähentämään asiakas-/palvelinviestintää.
Huomautus Jos ODBC-yhteys ulkoiseen tietolähteeseen katkeaa, Access yrittää muodostaa siihen yhteyden uudelleen automaattisesti. Jos uudelleenyritys onnistuu, voit jatkaa työskentelyä. Jos uudelleenyritys epäonnistuu, voit edelleen käyttää objekteja, jotka eivät käytä yhteyttä. Jos haluat muodostaa yhteyden uudelleen, sulje Access ja avaa se uudelleen.
Suositukset käytettäessä sekä ODBC:tä että OLE DB:tä
Vältä yhteysmerkkijonotekniikoiden ja tietokannan käyttötekniikoiden sekoittamista. Käytä ODBC-yhteysmerkkijonoa DAO:n kanssa. Käytä OLE DB -yhteysmerkkijonoa ADO:n kanssa. Jos sovelluksesi sisältää VBA-koodia, joka käyttää sekä DAO:ta että ADO:ta, käytä ODBC-ohjainta DAO:n kanssa ja OLE DB -palvelua ADO:n kanssa. Pyri saamaan uusimmat ominaisuudet ja tuet sekä ODBC:hen OLEDB:hen.
ODBC käyttää termiohjainta ja OLE DB termipalvelua. Termit kuvaavat samantyyppistä ohjelmisto-osaa, mutta ne eivät ole vaihtokelpoisia yhteysmerkkijonon syntaksissa. Käytä oikeaa arvoa dokumentoidulla tavalla.
Ohjelmallinen liityntä SQL Serveriin Accessista
On olemassa kaksi päätapaa liittyä Accessista SQL Server -tietokantaan.
DAO
Data Access Object (DAO) tarjoaa abstraktin liittymän tietokantaan. Microsoft Data Access Objects (DAO) on alkuperäinen ohjelmointiobjektimalli, jonka avulla voit käyttää Accessin ja SQL Serverin ydintoimintoja objektien, taulukoiden, kenttien, indeksien, yhteyksien, kyselyjen, ominaisuuksien ja ulkoisten tietokantojen luomiseen, poistamiseen ja muokkaamiseen.
Lisätietoja on artikkelissa Microsoft Data Access Objects -viiteopas.
ADO
ActiveX Data Objects (ADO) tarjoaa korkean tason ohjelmointimallin, ja se on käytettävissä Accessissa viittauksella kolmannen osapuolen kirjastoon. ADO on helppo oppia, ja sen avulla asiakassovellukset voivat käyttää ja käsitellä tietoja useista eri lähteistä, kuten Accessista ja SQL Serveristä. Sen tärkeimmät edut ovat helppokäyttöisyys, nopeus, pieni muistin käyttö ja pieni levytilan tarve. ADO tukee myös tärkeimpiä ominaisuuksia verkkopohjaisten sovellusten luontiin.
Lisätietoja on artikkeleissa Microsoft ActiveX Data Objects -viiteopas ja Microsoft ActiveX Data Objects (ADO).
Kumpaa pitäisi käyttää?
Access-ratkaisussa, joka käyttää VBA-koodia, voit käyttää tietokantaliittymätekniikkaa DAO:n, ADO:n tai kummankin kanssa. DAO on edelleen oletusasetus Accessissa. Esimerkiksi kaikki lomakkeet ja raportit sekä Access-kyselyt käyttävät DAO:ta. Jos kuitenkin siirryt SQL Serveriin, harkitse ADO:n käyttöä, jotta ratkaisusi olisi mahdollisimman tehokas. Seuraavassa on yleisiä ohjeita, joiden avulla voit päättää, onko DAO vai ADO parempi valinta.
Valitse DAO, jos haluat tehdä seuraavat toimet:
-
luettavan/kirjoitettavan sidotun lomakkeen luonti ilman VBA:ta
-
kyselyn kohdistaminen paikalliseen taulukkoon
-
tietojen lataaminen tilapäisiin taulukoihin
-
läpivientikyselyjen käyttäminen raporttien tai lomakkeiden tietolähteinä vain luku -tilassa
-
TableDef- tai QueryDef-objektin määrittäminen ja käyttäminen VBA:ssa.
Valitse ADO, jos haluat tehdä seuraavat toimet:
-
uusien optimointitapojen, kuten asynkronisten toimintojen suorittamisen, hyödyntäminen
-
DDL- ja DML-läpivientikyselyjen suorittaminen
-
SQL Serverin tietojen käyttäminen suoraan VBA-tietuejoukkojen avulla
-
yksinkertaisen koodin kirjoittaminen tietyille tehtäville, kuten Blob-objektien virtauttamiselle
-
tallennetun toimintosarjan kutsuminen suoraan parametrien avulla VBA:n komento-objektilla.
Yhteenveto ODBC-ohjainversioista
Seuraavassa taulukossa on yhteenveto ODBC-ohjainversioita, lataussijainteja ja ominaisuustukea koskevista tärkeistä tiedoista. Varmista, että käytät ohjaimen oikeaa bittiversiota (64-bittistä tai 32-bittistä) tietokoneeseen asennetun Windowsin (ei Officen) mukaan. Jos käytössäsi on 32-bittinen Access 64-bittisessä Windowsissa, asenna 64-bittinen ohjain, joka sisältää Accessin tarvitsemat 32-bittiset osat.
Lisätietoja on artikkeleissa Yhteysmerkkijonon avainsanojen käyttäminen SQL Server Native Clientin kanssa, Windowsin SQL Serverin ODBC-ohjaimen julkaisutiedot (V17) ja Windowsin SQL Serverin Microsoft ODBC -ohjaimen ominaisuudet (V13, 11).
ODBC-ohjaimet |
Versio |
Lataa |
Uudet ominaisuudet |
ODBC-ohjaimet 17.0–17.3 |
SQL Server 2017 |
ODBC-ohjain 17.3 Azure Active Directoryn käyttäminen ODBC-ohjaimen kanssa ODBC-ohjaimen rajoitukset käytettäessä Always Encrypted -määritystä ODBC-ohjain 17.2 Always Encrypted -määrityksen käyttäminen SQL Serverin ODBC-ohjaimen kanssa UTF-8-palvelinkoodauslajittelu ja Unicode-tuki ODBC-ohjain 17.1 Always Encrypted -määrityksen käyttäminen SQL Serverin ODBC-ohjaimen kanssa ODBC-ohjain 17.0 UseFMTONLY Vanhojen metatietojen käyttäminen erikoistapauksissa, jotka vaativat tilapäisiä taulukoita. Katso Windowsin SQL Serverin ODBC-ohjaimen julkaisutiedot (V17) |
|
ODBC-ohjain 13.1 |
SQL Server 2016 SP1, SQL Azure |
||
ODBC-ohjain 13.0 |
SQL Server 2016 |
Kansainvälisiä merkkejä tukevat toimialuenimet (IDN:t) |
|
ODBC-ohjain 11.0 |
SQL Server 2005–2012 |
Yhteyden vikasietoisuus Windowsin ODBC-ohjaimessa |
Yhteenveto OLE DB -palveluversioista
Seuraavassa taulukossa on yhteenveto OLE DB -palveluversioita, lataussijainteja ja ominaisuustukea koskevista tärkeistä tiedoista. Varmista, että käytät ohjaimen oikeaa bittiversiota (64-bittistä tai 32-bittistä) tietokoneeseen asennetun Windowsin (ei Officen) mukaan. Jos käytössäsi on 32-bittinen Access 64-bittisessä Windowsissa, asenna 64-bittinen ohjain, joka sisältää Accessin tarvitsemat 32-bittiset osat.
Lisätietoja on artikkelissa Yhteysmerkkijonon avainsanojen käyttäminen SQL Server Native Clientin kanssa.
OLE DB -palvelu |
Versio |
Lataa |
Uudet ominaisuudet |
OLE DB -ohjain 18.2.1 (MSOLEDBSQL) |
SQL Server 2017 |
Katso SQL Server -toiminnon OLE DB -ohjain ja Microsoft SQL Serverin OLE DB -ohjaimen julkaisutiedot |
|
SQL Server Native Client (SQLNCLI) |
SQL Server 2005–2012 |
Poistettu käytöstä, älä käytä |
|
OLE DB -ohjain (SQLOLEDB) |
Poistettu käytöstä, älä käytä |
ODBC-avainsanojen yhteenveto
Seuraavassa taulukossa on yhteenveto SQL Serverin tunnistamista ODBC-avainsanoista ja niiden tarkoituksista. Access tunnistaa vain osajoukon.
Avainsana. |
Kuvaus |
Addr |
Sen palvelimen verkko-osoite, jossa SQL Server -esiintymää suoritetaan. |
AnsiNPW |
Määrittää ANSI-määritettyjen toimintojen käyttötavan tyhjäarvojen vertailua, merkkitietojen täyttämistä, varoituksia ja tyhjäarvojen yhdistämistä (Yes tai No) varten. |
APP |
SQLDriverConnect-kutsun lähettävän sovelluksen nimi. |
ApplicationIntent |
Ilmoittaa sovelluksen työmäärän tyypin, kun yhteys palvelimeen muodostetaan (vain luku tai luku/kirjoitus). |
AttachDBFileName |
Liitettävissä olevan tietokannan ensisijaisen tiedoston nimi. |
AutoTranslate |
Määrittää, lähetetäänkö ANSI-merkkijonot asiakkaan ja palvelimen välillä, vai käännetäänkö ne Unicode-merkeiksi (Yes tai No). |
Tietokanta |
Tietokannan nimi Kuvaus Yhteyden tarkoitus. Driver Sen ohjaimen nimi, jonka SQLDrivers palauttaa. |
DSN |
Olemassa olevan ODBC-käyttäjän tai järjestelmän tietolähteen nimi. Encrypt Määrittää, salataanko tiedot ennen niiden lähettämistä verkon kautta (Yes tai No). |
Failover_Partner |
Sen vikasietokumppanipalvelimen nimi, jota käytetään, jos yhteyttä pääpalvelimeen ei voi muodostaa. |
FailoverPartnerSPN |
Vikasietokumppanin palvelun päänimi. |
Fallback |
Vanhentunut avainsana. |
FileDSN |
Olemassa olevan ODBC-käyttäjän tietolähteen nimi. Language SQL Serverin kieli. |
MARS_Connection |
Määrittää useita aktiivisia tulosjoukkoja (MARS) yhteydessä SQL Server 2005:ssä (9.x) tai uudemmassa versiossa (Yes tai No). |
MultiSubnetFailover |
Määrittää, muodostetaanko yhteys SQL Serverin käytettävyysryhmän kuuntelutoimintoon vai vikasietoklusteriesiintymään (Yes tai No). |
Net |
dbnmpntw ilmaisee nimetyt putket ja dbmssocn ilmaisee TCP/IP:n. |
PWD |
SQL Serverin kirjautumissalasana. |
QueryLog_On |
Määrittää pitkäkestoisten kyselyjen kirjaamisen lokiin (Yes tai No). |
QueryLogFile |
Sen tiedoston täydellinen polku ja tiedostonimi, jota käytetään pitkäkestoisten kyselyjen kirjaamisessa lokiin. |
QueryLogTime |
Lukumerkkijono, joka määrittää pitkäkestoisten kyselyjen lokiinkirjaamisen raja-arvon (millisekunteina). |
QuotedId |
Määrittää, noudattaako SQL Server lainausmerkkien käyttöä SQL-lausekkeissa koskevia ISO-sääntöjä (Yes tai No). |
Regional |
Määrittää, käyttääkö SQL Server Native Clientin ODBC-ohjain asiakasasetuksia muunnettaessa valuutta-, päivämäärä- tai kellonaikatietoja merkkitiedoiksi (Yes tai No). |
SaveFile |
Sen ODBC-tietolähdetiedoston nimi, johon nykyisen yhteyden määritteet tallennetaan, jos yhteyden muodostaminen onnistuu. |
Server |
SQL Server -esiintymän nimi: palvelin verkossa, IP-osoite tai kokoonpanon hallinnan tunnus. |
ServerSPN |
Palvelimen palvelun päänimi. |
StatsLog_On |
Ottaa käyttöön SQL Server Native Clientin ODBC-ohjaimen suorituskykytietojen tallennuksen. |
StatsLogFile |
Sen tiedoston täydellinen polku ja tiedostonimi, jota käytetään SQL Server Native Clientin ODBC-ohjaimen suorituskykytietojen tallennukseen. |
Trusted_Connection |
Määrittää, käytetäänkö sisäänkirjautumisen todennuksessa Windows-todennustilaa, vai SQL Serverin käyttäjänimeä tai salasanaa (Yes tai No). |
TrustServerCertificate |
Tämän käyttäminen yhdessä Encryptin kanssa ottaa käyttöön salauksen itse allekirjoitetun palvelinvarmenteen avulla. |
UID |
SQL Serverin kirjautumisnimi. |
UseProcForPrepare |
Vanhentunut avainsana. |
WSID |
Työaseman tunniste, sen tietokoneen verkkonimi, jossa sovellus sijaitsee. |
OLE DB -avainsanojen yhteenveto
Seuraavassa taulukossa on yhteenveto SQL Serverin tunnistamista OLE DB -avainsanoista ja niiden tarkoituksista. Access tunnistaa vain osajoukon.
Avainsana. |
Kuvaus |
Addr |
Sen palvelimen verkko-osoite, jossa SQL Server -esiintymää suoritetaan. |
APP |
Merkkijono, joka yksilöi sovelluksen. |
ApplicationIntent |
Ilmoittaa sovelluksen työmäärän tyypin, kun yhteys palvelimeen muodostetaan (vain luku tai luku/kirjoitus). |
AttachDBFileName |
Liitettävissä olevan tietokannan ensisijaisen tiedoston nimi. |
AutoTranslate |
Määrittää OEM-/ANSI-merkkien kääntämisen (True tai False). |
Connect Timeout |
Aika (sekunteina), jonka mukaisesti tietolähteen alustuksen valmistumista odotetaan. |
Current Language |
SQL Serverin kielen nimi. |
Tietolähde |
Organisaation SQL Server -esiintymän nimi. |
Database |
Tietokannan nimi |
DataTypeCompatibility |
Luku, joka ilmaisee käytettävän tieto tyypin käsittelyn tilan. |
Encrypt |
Määrittää, salataanko tiedot ennen niiden lähettämistä verkon kautta (Yes tai No). |
FailoverPartner |
Tietokantapeilauksessa käytettävän vikasietopalvelimen nimi. |
FailoverPartnerSPN |
Vikasietokumppanin palvelun päänimi. |
Initial Catalog |
Tietokannan nimi |
Initial File Name |
Liitettävissä olevan tietokannan ensisijaisen tiedoston nimi (sisällytä täydellinen polkunimi). |
Integrated Security |
Käytetään Windows-todennuksessa (SSPI). |
Language |
SQL Serverin kieli. |
MarsConn |
Määrittää useita aktiivisia tulosjoukkoja (MARS) yhteydessä SQL Server 2005:ssä (9.x) tai uudemmassa versiossa (Yes tai No). |
Net |
Verkkokirjasto, jonka avulla muodostetaan yhteys organisaation SQL Server -esiintymään. |
Network Address |
Organisaation SQL Server -esiintymän verkko-osoite. |
PacketSize |
Verkkopaketin koko. Oletusasetus on 4096. |
Persist Security Info |
Määrittää, onko pysyvä suojaus käytössä (True tai False). |
PersistSensitive |
Määrittää, onko pysyvä luottamuksellisuus käytössä (True tai False). |
Provider |
SQL Server Native Clientia varten tämän pitäisi olla SQLNCLI11. |
PWD |
SQL Serverin kirjautumissalasana. |
Server |
SQL Server -esiintymän nimi: palvelin verkossa, IP-osoite tai kokoonpanon hallinnan tunnus. |
ServerSPN |
Palvelimen palvelun päänimi. |
Timeout |
Aika (sekunteina), jonka mukaisesti tietolähteen alustuksen valmistumista odotetaan. |
Trusted_Connection |
Määrittää, käytetäänkö sisäänkirjautumisen todennuksessa Windows-todennustilaa, vai SQL Serverin käyttäjänimeä tai salasanaa (Yes tai No). |
TrustServerCertificate |
Määrittää, onko palvelinvarmenne tarkistettu (True tai False). |
UID |
SQL Serverin kirjautumisnimi. |
Use Encryption for Data |
Määrittää, salataanko tiedot ennen niiden lähettämistä verkon kautta (True tai False). |
UseProcForPrepare |
Vanhentunut avainsana. |
WSID |
Työaseman tunniste, sen tietokoneen verkkonimi, jossa sovellus sijaitsee. |