中间件与驱动
FreeTDS / UnixODBC
厂商/来源:
开源社区 (LGPL)
核心功能:
“Linux 与 Windows 的破冰船”。当你的 Linux 边缘网关需要向工厂里那台跑着 SQL Server 2000 的老掉牙服务器写数据时,这是唯一的救星。
| 适用场景 | Linux 程序读写 Microsoft SQL Server、Sybase 数据库、遗留 MES 系统对接 |
| 架构支持 | Linux (任何发行版) |
| 核心价值 | TDS 协议实现:微软的 SQL Server 使用 TDS 协议。微软官方虽然提供了 msodbcsql 驱动,但在 ARM (树莓派/RK3588) 或老旧 Linux 上往往装不上(glibc 版本依赖)。FreeTDS 是纯 C 编写,哪里都能编译运行。 |
| 对接情报 | 配置层级 1. freetds.conf: 定义服务器 IP 和 TDS 版本 (如 7.0/7.4)。 2. odbc.ini: 定义 DSN (数据源名称)。<br> 3. 代码: connect("DSN=MyServer;UID=sa;PWD=...")。 |
| 避坑指南 | [乱码之源]: 1. TDS 版本:连接 SQL Server 2000 必须用 tds version = 7.0,连接 2008+ 用 7.2 或 7.4。选错版本会导致连接被重置 2. 中文乱码:Linux 默认是 UTF-8,而老旧 SQL Server 往往是 GBK (CP936)。对策:在 freetds.conf 中显式配置 client charset = UTF-8,它会自动转码。如果还不升效,需要在连接字符串中强指 Charset=GBK。 |
| 推荐搭配 | [Python pyodbc] [Qt SQL] [Microsoft SQL Server] |