- 安装
- 文档
- 入门
- 连接
- 数据导入
- 客户端 API
- 概览
- ADBC
- C
- C++
- CLI
- Dart
- Go
- Java (JDBC)
- Julia
- Node.js (已弃用)
- Node.js (Neo)
- ODBC
- PHP
- Python
- R
- Rust
- Swift
- Wasm
- SQL
- 介绍
- 语句
- 概览
- ANALYZE
- ALTER TABLE
- ALTER VIEW
- ATTACH 和 DETACH
- CALL
- CHECKPOINT
- COMMENT ON
- COPY
- CREATE INDEX
- CREATE MACRO
- CREATE SCHEMA
- CREATE SECRET
- CREATE SEQUENCE
- CREATE TABLE
- CREATE VIEW
- CREATE TYPE
- DELETE
- DESCRIBE
- DROP
- EXPORT 和 IMPORT DATABASE
- INSERT
- LOAD / INSTALL
- PIVOT
- 性能分析
- SELECT
- SET / RESET
- SET VARIABLE
- SUMMARIZE
- 事务管理
- UNPIVOT
- UPDATE
- USE
- VACUUM
- 查询语法
- SELECT
- FROM 和 JOIN
- WHERE
- GROUP BY
- GROUPING SETS
- HAVING
- ORDER BY
- LIMIT 和 OFFSET
- SAMPLE
- 展开嵌套
- WITH
- WINDOW
- QUALIFY
- VALUES
- FILTER
- 集合操作
- 预处理语句
- 数据类型
- 表达式
- 函数
- 概览
- 聚合函数
- 数组函数
- 位字符串函数
- Blob 函数
- 日期格式化函数
- 日期函数
- 日期部分函数
- 枚举函数
- 间隔函数
- Lambda 函数
- 列表函数
- 映射函数
- 嵌套函数
- 数值函数
- 模式匹配
- 正则表达式
- 结构体函数
- 文本函数
- 时间函数
- 时间戳函数
- 带时区时间戳函数
- 联合函数
- 实用函数
- 窗口函数
- 约束
- 索引
- 元查询
- DuckDB 的 SQL 方言
- 示例
- 配置
- 扩展
- 核心扩展
- 概览
- 自动补全
- Avro
- AWS
- Azure
- Delta
- DuckLake
- 编码
- Excel
- 全文搜索
- httpfs (HTTP 和 S3)
- Iceberg
- ICU
- inet
- jemalloc
- MySQL
- PostgreSQL
- 空间
- SQLite
- TPC-DS
- TPC-H
- UI
- VSS
- 指南
- 概览
- 数据查看器
- 数据库集成
- 文件格式
- 概览
- CSV 导入
- CSV 导出
- 直接读取文件
- Excel 导入
- Excel 导出
- JSON 导入
- JSON 导出
- Parquet 导入
- Parquet 导出
- 查询 Parquet 文件
- 使用 file: 协议访问文件
- 网络和云存储
- 概览
- HTTP Parquet 导入
- S3 Parquet 导入
- S3 Parquet 导出
- S3 Iceberg 导入
- S3 Express One
- GCS 导入
- Cloudflare R2 导入
- 通过 HTTPS / S3 使用 DuckDB
- Fastly 对象存储导入
- 元查询
- ODBC
- 性能
- Python
- 安装
- 执行 SQL
- Jupyter Notebooks
- marimo Notebooks
- Pandas 上的 SQL
- 从 Pandas 导入
- 导出到 Pandas
- 从 Numpy 导入
- 导出到 Numpy
- Arrow 上的 SQL
- 从 Arrow 导入
- 导出到 Arrow
- Pandas 上的关系型 API
- 多个 Python 线程
- 与 Ibis 集成
- 与 Polars 集成
- 使用 fsspec 文件系统
- SQL 编辑器
- SQL 功能
- 代码片段
- 故障排除
- 术语表
- 离线浏览
- 操作手册
- 开发
- 内部结构
- 为什么选择 DuckDB
- 行为准则
- 发布日历
- 路线图
- 站点地图
- 在线演示
在 Windows 上使用 DuckDB ODBC API 需要以下步骤
-
Microsoft Windows 需要一个 ODBC 驱动程序管理器来管理应用程序与 ODBC 驱动程序之间的通信。Windows 上的驱动程序管理器以 DLL 文件
odbccp32.dll
以及其他文件和工具的形式提供。有关详细信息,请查阅 Common ODBC Component Files。 -
DuckDB 以资产形式发布 ODBC 驱动程序。对于 Windows,请从 Windows ODBC 资产 (x86_64/AMD64) 下载。
-
该存档包含以下组件
duckdb_odbc.dll
:为 Windows 编译的 DuckDB 驱动程序。duckdb_odbc_setup.dll
:Windows ODBC 数据源管理器工具使用的设置 DLL。odbc_install.exe
:一个用于帮助在 Windows 上进行配置的安装脚本。
将存档解压到某个目录(例如,
duckdb_odbc
)。 -
二进制文件
odbc_install.exe
在 Windows 上执行 DuckDB ODBC 驱动程序的配置。它依赖于提供配置 ODBC 注册表项功能的Odbccp32.dll
。在永久目录中(例如,
duckdb_odbc
),双击odbc_install.exe
。需要 Windows 管理员权限。如果不是管理员,将出现用户账户控制提示。
odbc_install.exe
将默认 DSN 配置以及默认数据库:memory:
添加到 ODBC 注册表中。
DSN Windows 设置
安装后,可以使用 Windows ODBC 数据源管理器工具 odbcad32.exe
更改默认 DSN 配置或添加新配置。
它也可以通过 Windows 开始菜单启动
默认 DuckDB DSN
新安装的 DSN 在 Windows ODBC 数据源管理器工具的 系统 DSN 中可见
更改 DuckDB DSN
选择默认 DSN(即 DuckDB
)或添加新配置时,将显示以下设置窗口
此窗口允许您设置 DSN 以及与该 DSN 关联的数据库文件路径。
更详细的 Windows 设置
配置 ODBC 驱动程序有两种方法,可以通过更改如下所述的注册表项,或者通过使用 SQLDriverConnect
进行连接。这两种方法也可以结合使用。
此外,ODBC 驱动程序支持 DuckDB 中包含的所有配置选项。
如果在传递给
SQLDriverConnect
的连接字符串和odbc.ini
文件中都设置了配置,则传递给SQLDriverConnect
的配置将优先。
有关配置参数的详细信息,请参阅ODBC 配置页面。
注册表项
Windows 上的 ODBC 设置基于注册表项(参见 Registry Entries for ODBC Components)。ODBC 条目可以放置在当前用户注册表项 (HKCU
) 或系统注册表项 (HKLM
) 中。
我们已测试并使用了基于 HKLM->SOFTWARE->ODBC
的系统条目。odbc_install.exe
更改此条目,它有两个子项:ODBC.INI
和 ODBCINST.INI
。
ODBC.INI
是用户通常为驱动程序插入 DSN 注册表项的地方。
例如,DuckDB 的 DSN 注册表项如下所示
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
具有指向新驱动程序的正确路径。