Prikaz velikih tabel v strežniškem načinu
Povezano tabelo z milijonom zapisov prikažite v mreži, ki se odpre v približno sekundi ter drsi, filtrira, razvršča in združuje, ne da bi nalagala zapise.
Zahteva WKL Forms Object Library 1.23 ali novejšo različico.
Pregled rešitve
Z DataMode = wgdServer mreža bere samo zapise, ki jih prikazuje; število zapisov, filtri,
skupine, vsote, seznami vrednosti in iskanje postanejo stavki nad virom zapisov. Zapisovanje še
vedno poteka prek programa Access.
Mreža je hitra le, če to dopušča vir. Predpogoji:
- Povezana tabela ODBC kot
RecordSource– SQL Server prek gonilnika ODBC Driver 18 (drugi gonilniki niso podprti) ali podatkovna storitev prek gonilnika Wkl OData. Mreža tedaj bere po lastni povezavi, mimo Accessovega podatkovnega stroja. - Shranjena prijava v povezavi: preverjanje pristnosti Windows ali geslo, shranjeno s povezavo (Shrani geslo pri povezovanju). Brez nje mreža ne more odpreti lastne povezave.
KeyField= primarni ključ tabele, da ima povezava v programu Access enolični indeks.- Indeksi na strežniku za stolpce, po katerih uporabniki razvrščajo, filtrirajo in združujejo; strežniški način to delo prepusti strežniku.
- Z gonilnikom Wkl OData: podatkovna storitev mora za vir podatkov in za klicatelja dovoliti prepustne stavke (stavke SQL klicatelja). Skrbnik podatkovne storitve vklopi prepuščanje za vir podatkov, za klicatelja pa bodisi doda pravilo z virom
sql(ključ storitve ali račun Windows s Persons = Service) bodisi dodeli pravilo, ki ni samo za branje (lastna prijava SQL ali Persons = Impersonate); ti koraki so del konfiguracije podatkovne storitve, ne mreže. Brez prepuščanja mreža preide na branje prek programa Access (glejte Opombe).
Izvedba
With Me!Grid1.Object
.RecordSource = "tblProdaja" ' linked table, 1,000,000 records
.KeyField = "ID"
.DataMode = wgdServer
End With
Lahko pa na strani oblikovalnika Vir zapisov vklopite Strežniški način. Nastavitev se shrani z obrazcem.
Opombe
- Preide na drug način, ne odpove. Lokalne tabele, poizvedbe, stavki SQL, nastavljen
Filter, povezave brez shranjene prijave in povezave Wkl OData brez prepuščanja se berejo prek programa Access, s ključi v kosih po 10.000. Vse deluje; oddaljeni položaji so počasnejši, vsote, ki jih vir zavrne, pa ostanejo prazne (Seštevki v strežniškem načinu ostanejo prazni). - V čem se razlikuje od pomnilniškega načina:
Filtermora biti pogoj v Accessovem SQL (brez JPath); klik na glavo stolpca znova vpraša vir; skupine so razvrščene po vrednosti; besedilni pogoji primerjajo shranjene vrednosti; urejen zapis ohrani svoje mesto doRequery; „Samo ujemanja“ v vrstici za iskanje ne filtrira. - Kaj mreža pošilja. Po lastni povezavi (niz povezave povezane tabele) mreža pošilja SQL v narečju ODBC objektu, na katerega kaže povezava (
SourceTableNamepovezave, tabela ali pogled), nikoli tabelam za pogledom:COUNT, stran zOFFSET ... FETCHali z rangiranjem,GROUP BYza skupine in vsote,DISTINCTza sezname vrednosti. Povezava pogleda zato ohrani vsak filter vrstic pogleda, tudi filter po prijavljenem uporabniku; če namesto tega povežete tabelo, se tak filter obide. Kadar strežnik omejuje vrstice za posameznega uporabnika, povezujte poglede, ne tabel. Ali gonilnik Wkl OData stavek prevede ali ga posreduje podatkovni storitvi, odloči gonilnik; glejte njegovo dokumentacijo. Zapisovanje vedno poteka prek programa Access in njegove povezave. - Vedno v pomnilniku: mreža, vezana z
Recordset, ali zMasterFilterMode, ki filtrira v pomnilniku, naloži vse zapise ne glede na nastavitev. - Izvoz: izvoz prebere vse izvožene zapise; velike vire najprej filtrirajte. Delovni zvezek sprejme največ 1.048.574 vrstic.
- Kako hitro: tabela z milijonom zapisov na strežniku SQL Server se odpre v približno sekundi, prek gonilnika ODBC Driver 18 in prek gonilnika Wkl OData. Časi so odvisni od strežnika in njegovih indeksov.
Sorodne teme
sl/wiki/msaccess/comctl/how-to/show-large-tables-in-server-mode.txt · Last modified: by Wolfgang van der Stille