我正在尝试弄清楚当连接到Linux上的MS-SQL服务器时,这两个拼图是如何交互在一起的.
据我了解,FreeTDS是用于与MS-SQL交谈的协议(即一组规则),它实际上是在进行交谈.Unixodbc是一个实现ODBC API的驱动程序,即我实现了一组函数.
为什么两件事都必要?任何人都可以详细说明我对这两件事实际做了什么的粗略理解吗?
jwg*_*jwg 10
unixODBC是ODBC的'DriverManager'.您可以unixODBC在Linux或*nix系统上使用何时连接到任何支持ODBC的数据库.这样做意味着您可以编写一些您应该能够在不同数据库之间使用的数据库查询.如果您不在Unix上,则可以使用不同的驱动程序管理器,例如内置的MS Office.
要清除所有组件:如果你使用的是一种语言,比如Python,要连接到SQL Server,你的连接可能会从Python的pyodbc(将python对象转换为unixODBC)转换为unixODBC(管理驱动程序,如FreeTDS),FreeTDS(将unixODBC对象转换为微软采用的TDS协议)和SQL Server.
该unixODBC网站http://www.unixodbc.org/说:
ODBC应用程序对DriverManager进行ODBC调用.DriverManager为应用程序执行许多任务,例如:
- 确保加载/卸载正确的驱动程序
- 验证任务
- 3.5到3.0到2.0的调用和数据映射
对DriverManager的大多数调用都会传递到已加载的驱动程序以进行进一步处理,但这对应用程序来说并不重要.
使用ODBC DriverManager的一些优点包括:
- 便携式数据访问代码
- 运行时绑定到数据源
- 能够轻松更改数据源
简而言之,驱动程序管理器会读取您的DSN,查看已配置的数据源,并确定连接的位置和方式.
根据您使用的数据库,您将需要不同的驱动程序.这段代码将使用ODBC进行的请求"转换"为相关数据库管理系统的正确协议.这是不同数据源需要不同的组件.在您的情况下,TDS是MS SQL Server使用的协议.FreeTDS是该协议的免费软件实现.
另见维基百科https://en.wikipedia.org/wiki/Open_Database_Connectivity(强调保留):
ODBC通过使用ODBC驱动程序作为应用程序和DBMS之间的转换层来实现DBMS独立性.应用程序通过与其链接的ODBC驱动程序管理器使用ODBC函数,驱动程序将查询传递给DBMS.ODBC驱动程序可以被认为类似于打印机驱动程序或其他驱动程序,为应用程序提供一组标准功能,并实现DBMS特定的功能.可以使用ODBC的应用程序称为"ODBC兼容".任何符合ODBC的应用程序都可以访问安装了驱动程序的任何DBMS.所有主要DBMS,许多其他数据源(如地址簿系统和Microsoft Excel)甚至文本或CSV文件都存在驱动程序.
| 归档时间: |
|
| 查看次数: |
2263 次 |
| 最近记录: |