Farbschema: Riviera
Sie befinden sich hier: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » Gonilnik WKL OData ODBC » Spremembe gonilnika OData ODBC

Spremembe gonilnika OData ODBC

Spremembe za aplikacije in skrbnike, po različicah gonilnika.

0.8.5 (4. 11. 2026)

  • Pogledi brez nadomestnega primarnega ključa. Za pogled brez indeksa gonilnik Accessu ne javlja več nobenega indeksa – tako ravna tudi Microsoftov gonilnik za SQL Server. Doslej se je ključ, ki ga podatkovna storitev za tak pogled izpelje iz njegovih tabel, pojavil kot primarni indeks PK_<pogled>. Aplikacija, ki po povezovanju za pogled ustvari lasten enolični indeks (CREATE UNIQUE INDEX … ON <pogled>), se je nato ustavila z napako 3283 (v angleškem Accessu „Primary key already exists.“). Tako kot z Microsoftovim gonilnikom Access pri ročnem povezovanju takega pogleda vpraša po enoličnem identifikatorju zapisa. Tabele obdržijo svoj primarni indeks. Pri storitvi OData, ki indeksov ne opisuje, ključ vsakega objekta (tabele ali pogleda) še naprej velja za primarni indeks.
  • En shranjen ključ za vse sheme vira podatkov. Gonilnik osebni ključ shrani eno raven nad korenom storitve, pri podatkovni storitvi za vir podatkov (…/odata/v4/<vzdevek>/) namesto za vsako shemo. Shranjeni ključ tako velja za vse sheme vira podatkov; doslej je veljal le za shemo, pri kateri je bil shranjen. Ključ, ki je bil prej shranjen na korenu storitve, še velja.

0.8.4 (4. 11. 2026)

  • Manjkajoče pravice brez pogovornega okna za prijavo. Če storitev prijavo zavrne s 403 (premalo pravic ali pravilo prijave, ki blokira to napravo ali ta čas), gonilnik to aplikaciji javi kot 28000 z razlogom storitve. Pogovornega okna Poveži zaradi tega ne odpre več, tudi če ga aplikacija zahteva: prijava z drugimi podatki na tem mestu uporabniku ne pomaga in samo vabi k preizkušanju drugih računov. Neznan ali potekel ključ (401) pogovorno okno še vedno odpre.

0.8.3 (3. 11. 2026)

  • Brez pogovornega okna, ko storitev ni dosegljiva. Če storitev ni dosegljiva (ni povezave, ni odgovora), gonilnik aplikaciji javi 08S01 z razlogom, namesto da bi odprl pogovorno okno Poveži. Povezana tabela v Accessu, katere storitev je pravkar izpadla, zdaj napako pokaže samo enkrat, namesto da bi po vsakem preklicu znova odprla pogovorno okno. V tem primeru se pogovorno okno odpre samo, če ga aplikacija izrecno zahteva (SQL_DRIVER_PROMPT). Zavrnjena prijava ga še naprej odpre povsod, kjer aplikacija dovoli pogovorno okno.
  • Hkrati samo eno pogovorno okno gonilnika. Če aplikacija gonilnik pokliče znova, medtem ko je eno od njegovih pogovornih oken odprto (Access to stori na primer pri ponovnem izrisu povezane tabele), gonilnik ne odpre drugega pogovornega okna nad njim, temveč ta klic obravnava kot preklic. Doslej so se pogovorna okna lahko odpirala drugo v drugem, dokler se Access ni zrušil zaradi prekoračitve sklada.

0.8.2 (2. 11. 2026)

  • Čakanje na zasedeno storitev. Če storitev odgovori s 429 ali 503, gonilnik pri branju počaka, kot pove Retry-After, in vpraša znova, namesto da bi končal s 3146; poročilo ali izvoz velike povezane tabele se tako izvede tudi pri storitvi z omejitvijo zahtev. Če storitev ostane zasedena, gonilnik javi HYT00 s časom čakanja storitve (prej 42000). Zasedena storitev ob povezovanju ne odpre več pogovornega okna Poveži. Glejte Omejitve.

0.8.1 (2. 11. 2026)

  • Večje strani za ozke vrstice. Gonilnik pri branju zaprosi za velikost strani glede na širino izbranih stolpcev (Prefer: odata.maxpagesize, do 10.000 vrstic). Ko Access bere samo ključe tabele, na primer za dynaset ali združen seznam v strežniškem načinu, storitev, ki željo upošteva, potrebuje desetino zahtev. Široke vrstice gonilnik bere kot doslej, v velikosti strani storitve.
  • Konstante na seznamu izbire in UNION/UNION ALL brez naslova za lastne stavke. Access pošlje SELECT 1 FROM t WHERE … in poizvedbe UNION nad dvema povezanima tabelama iste storitve gonilniku kot en stavek, ker gonilnik javlja jezik gonilnika ODBC Driver 18. Doslej jih je gonilnik zavrnil („Izrazi v seznamu izbire so podprti samo z agregatnimi funkcijami“, „pričakovan 'SELECT'“). Zdaj vsak del prebere z njegovim lastnim pogojem kot poizvedbo OData, vstavi konstante, dele zloži zaporedoma, pri UNION odstrani podvojene vrstice in razvrsti po ORDER BY za zadnjim delom. Z naslovom za lastne stavke gre UNION še naprej nespremenjen v zbirko podatkov.
  • Notranji spoj brez naslova za lastne stavke. Access pošlje spoj dveh povezanih tabel iste storitve kot seznam tabel s pogojem v WHERE; gonilnik ga je zavrnil („Poizvedbe nad več tabelami niso podprte“). Zdaj prebere prvo tabelo z njenim lastnim pogojem in vsako nadaljnjo samo za najdene vrednosti spoja (po blokih), vrstice spoji, prešteje in razvrsti. Besedilo se spaja ne glede na velike in male črke, kot pri SQL Serverju. Zunanji spoji in vsote nad spojem še naprej potrebujejo naslov za lastne stavke.
  • Ime tabele s podatkovno zbirko ali drugo shemo se ne razlaga več tiho drugače. Gonilnik je SELECT … FROM druga_zbirka.dbo.t in SELECT … FROM druga_shema.t prevedel sam in pri tem bral tabelo t lastnega korena storitve. Zdaj gre tak stavek na naslov za lastne stavke, kot vsak stavek, ki ga gonilnik ne prevede: s pravico sql ga podatkovni prehod izvede kot ODBC Driver 18, brez te pravice pa ga zavrne kot preverjeni stavek. Brez tega naslova gonilnik odgovori z 42000. dbo.t ostane tabela t, če koren streže shemo dbo.
  • Klic procedure z {call …} in {? = call …}. Gonilnik klavzulo prevede v EXEC in jo pošlje na naslov za lastne stavke. Doslej je šla nespremenjena v podatkovno zbirko, SQL Server pa jo je zavrnil z 42000.
  • Izhodni parametri in vrnjena vrednost. SQLBindParameter sprejme SQL_PARAM_OUTPUT in SQL_PARAM_INPUT_OUTPUT; kot pri ODBC Driver 18 so vrednosti v medpomnilnikih, takoj ko SQLMoreResults javi SQL_NO_DATA, pri stavku brez niza rezultatov pa takoj po izvedbi. Doslej je gonilnik odgovoril s HYC00.
  • Več nizov rezultatov. SQLMoreResults vrne naslednji niz posredovanega stavka; doslej je takoj javil SQL_NO_DATA.
  • Stolpci pred izvedbo. Po SQLPrepare storitev opiše posredovan stavek, ne da bi ga izvedla; doslej je gonilnik tam javil nič stolpcev. Glejte Omejitve.
  • Tipi kot pri ODBC Driver 18. Kjer storitev navede tip podatkovne zbirke (Store.Type), gonilnik varchar, char in text opiše kot ozke tipe namesto kot nvarchar, nchar in ntext, tipe time, datetimeoffset, xml, sql_variant, hierarchyid, geography in geometry pa z lastnimi tipi gonilnika SQL Serverja. V Accessu so ti stolpci, tako kot pri ODBC Driver 18, prikazani kot besedilo: time z deli sekunde namesto z današnjim datumom, datetimeoffset z zamikom namesto v koordiniranem univerzalnem času. Glejte Podatkovni tipi.
  • Vrednosti kot besedilo kot pri ODBC Driver 18. Decimalna mesta ure in časovne točke v polni širini stolpca, decimalna števila brez ničle pred decimalno piko (-.0000000001 namesto -0.0000000001).
  • Stolpci brez imena. Stolpec brez aliasa (SELECT COUNT(*) FROM t) ne dobi več imena Expr1000; posredovana poizvedba pokaže ime iz label in stolpec identitete označi z identity.
  • Časovna točka z zamikom kot besedilo v pogoju ali spremembi je bila prebrana kot krajevni čas in nato zapisana z Z, torej premaknjena za zamik. Zdaj ohrani svoj zamik.
  • Pogovorna okna in sporočila v jeziku prikaza sistema Windows. Pogovorna okna gonilnika in besedila njegovih diagnostičnih zapisov sledijo jeziku prikaza uporabnika Windows: nemščina, slovenščina, sicer angleščina. Doslej je bilo oboje v nemščini. SQLSTATE in izvorne številke napak ostanejo enake; sporočila storitve in podatkovne zbirke gonilnik posreduje nespremenjena. Nemška sporočila so zdaj zapisana s preglasi (gültig namesto gueltig); aplikacija, ki vrednoti napake, preverja SQLSTATE, ne besedila. Glejte Jezik sporočil.

0.8.0 (28. 10. 2026)

  • Nova ključna beseda APP. Aplikacija navede sebe in svojo različico (APP=Stranke/2.4.1); gonilnik to pošlje z vsako zahtevo v glavi X-Wkl-Application. Storitev s posodobitvami podatkovnih zbirk namesti posodobitev, ki pokvari starejše različice, šele ko nobena starejša različica ne pošilja več zahtev. Brez APP šteje povezava tam kot neznana. Vrednost druge oblike se ne pošlje; povezava vseeno uspe (glejte ključne besede povezave).

0.7.1 (23. 10. 2026)

Delovanje gonilnika se ne spremeni; novi so podatki o proizvajalcu, podpis in obvezna besedila.

  • Proizvajalec je EMSR DATA, D.O.O. Tako je navedeno na seznamu nameščenih aplikacij in v lastnostih datoteke DLL; do različice 0.7.0 je bilo tam navedeno „The White Knight Labs“. Posodobitev staro različico kljub temu prepozna.
  • Datoteka DLL in paket sta podpisana. Obe datoteki DLL (x86, x64) in paket nosita podpis EMSR DATA, D.O.O. s časovnim žigom. Nadzor aplikacij lahko zato gonilnik dovoli po izdajatelju namesto s pravilom za vsako datoteko.
  • Licenčni pogoji pred namestitvijo. Paket pri interaktivni namestitvi najprej prikaže licenčne pogoje; namesti se šele, ko jih sprejmete (glejte Namestitev gonilnika na delovna mesta).
  • Obvezna besedila ob datoteki DLL: licenčni pogoji, varnostna obvestila, podatki o proizvajalcu in obvestila o komponentah tretjih oseb, vsako v angleščini, nemščini in slovenščini.

0.7.0 (18. 10. 2026)

  • Prijavni podatki ne sledijo več preusmeritvi na drug računalnik. Do različice 0.6.0 je gonilnik samodejno sledil preusmeritvi HTTP (3xx) storitve, pri tem pa je cilju poslal tudi osebni ključ, ključ storitve in sejo 2FA. Zdaj preusmeritvi sledi samo pri branju in samo pri isti shemi, računalniku in vratih; sicer se zahteva konča z napako 08S01 in sporočilom, ki navaja cilj. Preusmerjena sprememba se ne ponovi.
  • Seja in prijava Windows samo na zaščitene lastne naslove. Seja 2FA se zdaj pošilja samo prek https ali na lokalni računalnik, tudi na naslov za lastne stavke (PASSTHROUGH); če storitev prek http zahteva 2FA, gonilnik ne pošlje ne kode ne seje in javi 28000. Pri AUTH=WINDOWS gonilnik odgovori na izziv za prijavo (Negotiate, NTLM) samo, če pride z naslova URL ali PASSTHROUGH; do različice 0.6.0 je prijavo Windows dobil vsak računalnik, ki ga je navedla naslednja stran ali dokument metapodatkov.
  • Literali datuma in časa se berejo natančno. {ts '…'} sprejme samo yyyy-mm-dd hh:mm:ss z do sedmimi decimalnimi mesti, {t '…'} samo hh:mm:ss. Do različice 0.6.0 je gonilnik bral tudi oblike, kot je {ts '06/01/2023'}, in pri tem ugibal, katero število je mesec; zdaj jih obravnava kot vsak stavek, ki ga ne prevede (glejte Ubežne klavzule).
  • Skrajšani rezultati se javijo. Če storitev rezultat posredovanega stavka skrajša pri svoji omejitvi števila vrstic ("truncated": true), gonilnik vrne vrstice in nato javi HY000 „Der Dienst hat das Ergebnis nach N Zeilen gekuerzt …“ (Storitev je rezultat skrajšala po N vrsticah …). Do različice 0.6.0 je skrajšana množica prispela brez opozorila. Aplikacija, ki je take rezultate doslej tiho obdelovala, zdaj dobi napako.
  • DATABASE tudi prek virov podatkov. Gonilnik pri povezavi prek vira podatkov vrne njegov DATABASE, sicer koren storitve, pogovorno okno za nastavitev pa koren storitve zapiše v vsak vir podatkov. Dva vira podatkov za dva korena storitve si v Accessu tako ne delita več povezave.
  • TIMEOUT in RETRY. TIMEOUT=0 pomeni brez časovne omejitve; negativno število ali besedilo se konča z napako 08001 (doslej tiho 60 sekund). Novo RETRY=OFF: brez ponovitve po prekinitvi povezave, za storitve, ki ne upoštevajo Idempotency-Key.
  • Spremenjeni SQLSTATE pri povezovanju. Neuporaben niz povezave (manjkajoč ali neveljaven URL, neveljaven PASSTHROUGH ali MAXURLLENGTH, predolg ROLE) javi 08001, neuporabni prijavni podatki (prazen APIKEYENV, geslo/ključ/SESSION na nezaščiten naslov, protislovni podatki, neznan AUTH) pa 28000. Doslej je gonilnik v obeh primerih javil IM002, ki ga specifikacija ODBC pridržuje upravitelju gonilnikov. Aplikacijo, ki preverja IM002, da bi prepoznala napako pri preverjanju v gonilniku, je treba prilagoditi.
  • Dokumentacija. Novo: Varnostni model in meje zaupanja, Standardi in specifikacije, Kako iz storitve OData nastane relacijski model ODBC, Kako gonilnik razvršča in javlja odgovore, odstopanja od ODBC Driver 18 in vedenje transakcij pri napakah. Popravljeno: sledenje pri ustvarjanju in spreminjanju zapisuje vrednosti polj; {call …} pri SQL Serverju ne uspe tudi s prepustno potjo. Novi strani za odpravljanje težav pri sporočilih „Der Dienst hat das Ergebnis nach N Zeilen gekürzt“ (Storitev je rezultat skrajšala po N vrsticah) in „Der Dienst leitet an … um“ (Storitev preusmerja na …).

0.6.0 (13. 10. 2026)

  • Prva različica s stalno številko različice: različica datoteke DLL, SQLGetInfo(SQL_DRIVER_VER) in namestitveni paket imajo isto različico; sledenje navaja gradnjo.
  • Obseg funkcij: branje, filtriranje, razvrščanje, štetje in listanje na storitvi; ustvarjanje, spreminjanje in brisanje s konfliktom pri pisanju prek If-Match; združevanje v skupine prek $apply; OFFSET/FETCH; prepustna pot (pass-through) za stavke, ki jih ni mogoče prevesti; transakcije, kjer jih storitev podpira; sporočila podatkovne zbirke s številko in SQLSTATE; prijava z računom Windows, imenom in geslom, osebnim ključem in 2FA.
  • Vsebuje popravek za tabele s ključem tipa uniqueidentifier z dne 7. 10. 2026: Access je prej prikazoval #Deleted (glejte Access pri ključu GUID javi "Record is deleted").
sl/wiki/data-conectivity/odata-odbc/changelog.txt · Zuletzt geändert: von Wolfgang van der Stille