Barvna shema: Riviera
Trenutno dejavna stran: start » en » Documentation » Data integration and data access » WKL OData ODBC Driver » OData ODBC driver reference » Standards and specifications (reference)

Standards and specifications (reference)

Which standards and vendor specifications the driver is based on, what each of them requires, how the driver implements it, and where its limits are. You need this page if you assess whether the driver works with a service or an application, or if you verify the origin of a requirement.

Kinds of sources

None of the sources is legally binding for the operator. They differ in how much interoperability depends on them:

KindSignificance for the driver
Protocol standard (OASIS Standard, Standards Track RFC)If the driver deviates, a compliant service doesn't understand it. Binding for interoperability
Vendor specification (ODBC from Microsoft)ODBC applications and the Windows Driver Manager rely on it. Binding for interoperability
Informational RFC, IETF draftDescribes a common method without standards status; the driver follows it, a service doesn't have to
Own extension (vocabulary Wkl.Store.V1, headers X-Wkl-…)Design decision of this product; a third-party service doesn't know it, and the driver works without it

Sources and their implementation

SourceKindWhat it specifies, as far as the driver is affectedImplementation in the driverLimits
ODBC Programmer's Reference, ODBC 3.xVendor specificationfunctions, handles, diagnostic records, SQLSTATE per function; the form of the connection string; IM… only for the Driver Managerreports SQL_DRIVER_ODBC_VER 03.51 and interface conformance level 1 (SQL_ODBC_API_CONFORMANCE); functions in the Unicode form (…W), the Driver Manager translates the ANSI form; forward-only cursor; SQLSTATE 08001/28000 instead of IM002output parameters, multiple result sets, and descriptor fields aren't supported (see Limits)
ODBC Escape SequencesVendor specificationvendor-neutral literals, functions, joins, and procedure calls in braces{d}, {t}, {ts}, {guid}, {escape}, {call} translated{fn}, {oj} not translated
OData Version 4.01 Part 1: ProtocolOASIS Standardrequests, responses, error format, @odata.nextLink, @odata.etag/If-Match, adding/changing/deleting; version negotiation through OData-Versionsends OData-Version: 4.0 and OData-MaxVersion: 4.0; follows nextLink; PATCH/DELETE with If-Match, 412 as a write conflict$expand, $search, $batch, delta, asynchronous requests not used
Part 2: URL ConventionsOASIS Standardquery options, literals, addressing by key$select, $filter, $orderby, $top, $skip, $count; literals without type names; POST …/$query (only since 4.01) only if an address would be too longfunctions in $filter other than contains, startswith, endswith
CSDL XML 4.01OASIS Standardstructure of $metadata: sets, types, facets, keys, annotationscatalog functions and type mapping from $metadataCSDL in JSON not read
OData JSON Format 4.01OASIS Standardrepresentation of values and errors in JSONreads and writes only JSONAtom/XML not
OData Extension for Data Aggregation 4.0OASIS Committee Specification, not an OASIS Standard$apply with filter, compute, groupby, aggregate; announcement through ApplySupporteduses $apply only when announcedCOUNT(Spalte) only through the own method Wkl.Store.V1.count
RFC 9110 HTTP SemanticsRFC, Internet Standardconditional requests (If-Match, 412), 401 with WWW-Authenticate, redirects (3xx)write conflict through If-Match; challenges answered; the driver itself follows redirects, only when reading and only at the same origina redirect to another origin isn't followed, even if the service means it that way (intended)
RFC 7617 BasicStandards Track RFCname and password, separated by a colon, UTF-8 character set recommendedUTF-8; a name with a colon is rejected (28000)–
RFC 4559 NegotiateInformational RFCKerberos or NTLM over HTTPWindows sign-in of the process with Kerberos or NTLM, only on challenge–
RFC 6238 TOTPInformational RFCtime-based one-time codesonly passes the code on; the service checks it–
Idempotency-Key HTTP Header FieldIETF draft, not a standarda key makes retrying a change harmless if the service honors itsends it with every changea third-party service doesn't have to know it (see Commitments per kind of service)
TLS through the Windows Schannel interfaceOperating systemprotocol versions, cipher suites, and certificate validationleaves version and cipher suites to Windows; validates the certificate against the certificate storesrevocation lists and OCSP not queried; no pinning
CREDENTIALW (Credential Manager)Vendor specificationgeneric credential per user, persistencestores per service root and name, persistence „local machine“protection only against other Windows accounts, not against programs of the same account

See also

en/wiki/data-conectivity/odata-odbc/reference/standards.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille