⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
ODBC API on Windows

在Windows上使用DuckDB ODBC API需要以下步骤:

  1. Microsoft Windows 需要一个 ODBC 驱动程序管理器来管理应用程序与 ODBC 驱动程序之间的通信。 Windows 上的驱动程序管理器以 DLL 文件 odbccp32.dll 和其他文件和工具的形式提供。 有关详细信息,请查看 Common ODBC Component Files

  2. DuckDB 将 ODBC 驱动程序作为资源发布。对于 Windows 系统,请从 Windows ODBC 资源 (x86_64/AMD64) 下载。

  3. 存档包含以下工件:

    • duckdb_odbc.dll: the DuckDB driver compiled for Windows.
    • duckdb_odbc_setup.dll: a setup DLL used by the Windows ODBC Data Source Administrator tool.
    • odbc_install.exe: an installation script to aid the configuration on Windows.

    将存档解压缩到一个目录(例如,duckdb_odbc)。例如,运行:

    mkdir duckdb_odbc && unzip duckdb_odbc-windows-amd64.zip -d duckdb_odbc
    
  4. odbc_install.exe 二进制文件在Windows上执行DuckDB ODBC驱动程序的配置。它依赖于提供配置ODBC注册表项功能的Odbccp32.dll

    在永久目录内(例如,duckdb_odbc),双击odbc_install.exe

    需要Windows管理员权限。如果是非管理员用户,将会出现用户账户控制提示。

  5. odbc_install.exe 将默认的DSN配置添加到ODBC注册表中,并使用默认数据库 :memory:

DSN Windows 设置

安装后,可以使用Windows ODBC数据源管理工具odbcad32.exe更改默认的DSN配置或添加新的配置。

它也可以通过Windows启动菜单启动:

默认 DuckDB DSN

新安装的DSN在Windows ODBC数据源管理工具中的系统DSN中可见:

Windows ODBC Config Tool

更改 DuckDB DSN

当选择默认的DSN(即DuckDB)或添加新配置时,将显示以下设置窗口:

DuckDB Windows DSN Setup

此窗口允许您设置DSN及与该DSN关联的数据库文件路径。

更详细的Windows设置

有两种方法可以配置ODBC驱动程序,一种是按照下面详细说明修改注册表键值,另一种是通过SQLDriverConnect连接。两种方法的结合也是可行的。

此外,ODBC驱动程序支持DuckDB中包含的所有配置选项

If a configuration is set in both the connection string passed to SQLDriverConnect and in the odbc.ini file, the one passed to SQLDriverConnect will take precedence.

For the details of the configuration parameters, see the ODBC configuration page.

注册表键

Windows上的ODBC设置基于注册表键(参见ODBC组件的注册表条目)。 ODBC条目可以放置在当前用户注册表键(HKCU)或系统注册表键(HKLM)中。

我们已经测试并使用了基于HKLM->SOFTWARE->ODBC的系统条目。 odbc_install.exe更改了这个条目,它有两个子键:ODBC.INIODBCINST.INI

ODBC.INI 是用户通常为驱动程序插入DSN注册表条目的地方。

例如,DuckDB的DSN注册表将如下所示:

`HKLM->SOFTWARE->ODBC->ODBC.INI->DuckDB`

ODBCINST.INI 包含每个ODBC驱动程序的条目以及为Windows ODBC配置预定义的其他键。

更新ODBC驱动程序

当新版本的ODBC驱动程序发布时,安装新版本将覆盖现有版本。 然而,安装程序并不总是更新注册表中的版本号。 为了确保使用正确的版本, 请检查HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\DuckDB Driver是否具有最新版本, 以及HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\DuckDB\Driver是否指向新驱动程序的正确路径。