Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Open Database Connectivity
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Drivers and Managers== ===Drivers=== ODBC is based on the [[device driver]] model, where the driver encapsulates the logic needed to convert a standard set of commands and functions into the specific calls required by the underlying system. For instance, a [[printer driver]] presents a standard set of printing commands, the API, to applications using the printing system. Calls made to those APIs are converted by the driver into the format used by the actual hardware, say [[PostScript]] or [[Printer Command Language|PCL]]. In the case of ODBC, the drivers encapsulate many functions that can be broken down into several broad categories. One set of functions is primarily concerned with finding, connecting to and disconnecting from the DBMS that driver talks to. A second set is used to send SQL commands from the ODBC system to the DBMS, converting or interpreting any commands that are not supported internally. For instance, a DBMS that does not support [[Cursor (databases)|cursors]] can emulate this functionality in the driver. Finally, another set of commands, mostly used internally, is used to convert data from the DBMS's internal formats to a set of standardized ODBC formats, which are based on the C language formats. An ODBC driver enables an ODBC-compliant application to use a ''data source'', normally a DBMS. Some non-DBMS drivers exist, for such data sources as [[Comma-separated values|CSV]] files, by implementing a small DBMS inside the driver itself. ODBC drivers exist for most DBMSs, including [[Oracle database|Oracle]], [[PostgreSQL]], [[MySQL]], [[Microsoft SQL Server]] (but not for the [[SQL Server Compact|Compact aka CE edition]]), [[Mimer SQL]], [[Adaptive Server Enterprise|Sybase ASE]], [[SAP HANA]]<ref>{{Cite web |url=http://db-engines.com/en/system/SAP+HANA |title=SAP HANA System Properties |website=[[DB-Engines]] |access-date=2016-03-28 }}</ref><ref>{{Cite web |url=http://help.sap.com/saphelp_hanaplatform/helpdata/en/66/a4169b84b2466892e1af9781049836/content.htm |title=Connect to SAP HANA via ODBC - SAP HANA Developer Guide for SAP HANA Studio - SAP Library |website=help.sap.com |access-date=2016-03-28 }}</ref> and [[IBM Db2]]. Because different technologies have different capabilities, most ODBC drivers do not implement all functionality defined in the ODBC standard. Some drivers offer extra functionality not defined by the standard. ===Driver Manager=== Device drivers are normally enumerated, set up and managed by a separate Manager layer, which may provide additional functionality. For instance, printing systems often include functionality to provide [[spooling]] functionality on top of the drivers, providing print spooling for any supported printer. In ODBC the Driver Manager (DM) provides these features.<ref>{{cite web |last=Sybase |title=Introduction to ODBC |url=http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sdk_12.5.1.aseodbc/html/aseodbc/aseodbc5.htm |work=infocenter.sybase.com |publisher=Sybase |access-date=8 October 2011 }}</ref> The DM can enumerate the installed drivers and present this as a list, often in a GUI-based form. But more important to the operation of the ODBC system is the DM's concept of a ''Data Source Name'' (DSN). DSNs collect additional information needed to connect to a ''specific'' data source, versus the DBMS itself. For instance, the same [[MySQL]] driver can be used to connect to any MySQL server, but the connection information to connect to a local private server is different from the information needed to connect to an internet-hosted public server. The DSN stores this information in a standardized format, and the DM provides this to the driver during connection requests. The DM also includes functionality to present a list of DSNs using human readable names, and to select them at run-time to connect to different resources. The DM also includes the ability to save partially complete DSN's, with code and logic to ask the user for any missing information at runtime. For instance, a DSN can be created without a required password. When an ODBC application attempts to connect to the DBMS using this DSN, the system will pause and ask the user to provide the password before continuing. This frees the application developer from having to create this sort of code, as well as having to know which questions to ask. All of this is included in the driver and the DSNs.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)