- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚这两个拼图在连接到 Linux 上的 MS-SQL 服务器时如何交互和组合在一起。
据我了解,FreeTDS 是用于与 MS-SQL 对话的协议(protocol)(即一组规则),它是真正进行对话的东西。 Unixodbc 是一个实现 ODBC API 的驱动程序,即实现了我猜的一组函数。
为什么这两件事都是必要的?谁能详细说明我对这两件事的实际作用的粗略理解?
最佳答案
unixODBC
是 ODBC 的“DriverManager”。您可以使用 unixODBC
在 Linux 或 *nix 系统上连接到任何支持 ODBC 的数据库时。这样做意味着您可以编写大量的数据库查询,您应该能够在不同的数据库之间使用这些查询。如果您不在 Unix 上,您将使用不同的驱动程序管理器,例如内置的 MS Office 驱动程序管理器。
为了使所有组件清晰:如果您使用一种语言,比如说 Python,来连接到 SQL Server,您的连接可能从 Python 的 pyodbc(将 python 对象与 unixODBC 相互转换)传递到 unixODBC(管理驱动程序,例如FreeTDS)到 FreeTDS(将 unixODBC 对象与 Microsoft 支持的 TDS 协议(protocol)相互转换)到 SQL Server。unixODBC
网站 http://www.unixodbc.org/说:
An ODBC application makes ODBC calls to the DriverManager. The DriverManager carries out a number of tasks for the application such as:
- ensuring the proper driver is loaded/unloaded
- validation tasks
- 3.5 to 3.0 to 2.0 call and data mapping
Most calls to the DriverManager get passed onto the loaded Driver to be further processed but that is of little concern to the application.
Some advantages to using an ODBC DriverManager include:
- portable data access code
- runtime binding to a Data Source
- ability to easily change the Data Source
ODBC accomplishes DBMS independence by using an ODBC driver as a translation layer between the application and the DBMS. The application uses ODBC functions through an ODBC driver manager with which it is linked, and the driver passes the query to the DBMS. An ODBC driver can be thought of as analogous to a printer driver or other driver, providing a standard set of functions for the application to use, and implementing DBMS-specific functionality. An application that can use ODBC is referred to as "ODBC-compliant". Any ODBC-compliant application can access any DBMS for which a driver is installed. Drivers exist for all major DBMSs, many other data sources like address book systems and Microsoft Excel, and even for text or CSV files.
关于freetds - FreeTDS 和 unixodbc 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31980980/
我有一个在 Docker 容器中运行的 Python Flask 应用程序,该容器通过 SQLAlchemy 连接到 MS SQL Server(企业数据库)。但是,当我尝试构建容器时遇到包冲突。这是
我正在尝试在 redhat 6.3 中安装 msodbcsql v13。它显示 unixODBC(64 位) >= 2.3.1 需要在安装 msodbcsql 之前安装的依赖项错误。 我尝试在命令下运
我要问和回答这个问题,因为这使我花了很长时间才弄清楚,我希望答案从这里开始。 问题:一个长时间运行的unixODBC查询会阻止同一应用程序中的所有其他查询。 问题是:如何阻止这种情况的发生。 最佳答案
我正在使用 ArchLinux,我正在尝试安装 OpenEdge 进度驱动程序,以便我可以通过 PHP 访问它。我已经安装了 unixodbc 包和驱动程序,但是当我通过 isql 或 PHP 测试连
我用 C++ 编写了一些使用 ODBC 远程处理数据库的软件。在这种情况下,数据库在 Postgres 引擎中运行,而我的软件在安装了 unixODBC 和 odbc-postgres 驱动程序的 U
我使用unixODBC连接到mssql数据库通过 odbc。问题是无论我添加多少数据源odbc.ini,它始终使用列表中的第一个数据库.. odbcinst.ini [ODBC] Trace
我的应用程序用于从大文件的不同部分读取数据并更新表。数据的每个部分都与一个单独的表相关联。更新过程可以包含多个插入、更新和删除语句。 我试图将文件拆分为多个文件并运行 3、4 或 n 个应用程序实例以
我的unixodbc可以连接到PostgreSQL,但是unixodbc总是写入错误的跟踪文件。我在/tmp/odbc.log 中设置跟踪文件,但 unixodbc 总是将其写入/tmp/sql.lo
我正在使用 Ubuntu+php+unixodbc+mdbtools 来处理 .mdb 文件。 每件事(连接+选择)都很好,但是插入或更新语句。 我的代码是这样的: $mdbConnection =
我有一个类似的查询 select x from tableName where startDate = { ts '?' } for update;");
我在一个环境中工作,该环境在组织范围内集中安装的驱动器上安装了 unixODBC,但我们(实际开发人员)不允许在其中安装驱动程序或数据源。这一切都是倒退的,但我必须忍受它。 现在我正在尝试构建一个 p
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
我需要将 LAMP(Linux Ubuntu 12.10、Apache 2、MySQL 5、PHP 5.3)服务器中的 PHP 脚本连接到 Access MDB 数据库(2003 版)。 1。 uni
我试图弄清楚这两个拼图在连接到 Linux 上的 MS-SQL 服务器时如何交互和组合在一起。 据我了解,FreeTDS 是用于与 MS-SQL 对话的协议(protocol)(即一组规则),它是真正
有两个主要的开源平台独立实现ODBC 。是iODBC和 unixODBC . 考虑到 Unix 作为 ODBC 用户平台和功能,这两种实现之间真正的实际差异是什么? 最佳答案 只是为了让您知道我使用
我已将此代码包含在当前事件主题的 functions.php 中,并且在 WINDOWS 平台 上完美运行(即:我首先将 .mdb 文件上传到服务器上,然后从文件中读取表格)。就像我们使用 MySQL
我已经为此工作了太久,似乎无法弄清楚。我确定我的 freetds.conf、odbc.ini 或 odbcinst.ini 有问题。我可以使用 tsql 连接到我的 mssql 2008 服务器,但仍
我在 Ubuntu Linux 上,想知道如何检测系统有什么 ODBC 驱动程序管理器(如果有的话)。 像 Rakib 的评论一样,我使用的一种非常粗略的方法是简单地尝试运行 isql (unixOD
我正在使用 Debian。我安装了 unixODBC 以及 FreeTDS。我正在使用 PHP 我已经阅读了几个操作方法,但遇到了一个问题。 我使用 tsql 测试了 FreeTDS,它工作正常。 我
我使用来自 brainman (http://code.google.com/p/odbc) 的 ODBC 驱动程序将 Golang 与 FreeTDS 结合使用 一切正常,直到我对盒子进行压力测试。
我是一名优秀的程序员,十分优秀!