---
title: "Windows 版 ODBC 驱动安装与配置 - ODBC 驱动程序  V2.0.9 | OceanBase 文档中心"
description: Windows 版 ODBC 驱动安装与配置 安装驱动 获取到 Windows 版 OceanBase Connector/ODBC 驱动安装包后，根据如下步骤进行安装与配置。 配置数据源 Windows 版 OceanBase Connector/ODBC 驱动安装包为一键部署式，根据默认指导步骤安装即可。 选择 …
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*0V2BT7xsMSQAAAAAAAAAAAAADiGDAQ/original) ODBC 驱动程序 V 2.0.9

# Windows 版 ODBC 驱动安装与配置

更新时间：2026-06-23 19:51:58

[编辑](https://github.com/oceanbase/connector-odbc-doc/edit/V2.0.9/zh-CN/200.installation-and-configuration/300.windows-installation-and-configuration.md)  

## 安装驱动

获取到 Windows 版 OceanBase Connector/ODBC 驱动安装包后，根据如下步骤进行安装与配置。

## 配置数据源

1. Windows 版 OceanBase Connector/ODBC 驱动安装包为一键部署式，根据默认指导步骤安装即可。
 2. 选择 **控制面板**>**系统和安全**>**管理工具**>**ODBC Data Sources**>**驱动程序**，OceanBase Connector/ODBC 驱动安装成功后在此显示出来。

   ![win-configure-data-source-1.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odbc/win-configure-data-source-1.png)
 3. 鼠标双击，选择 **用户 DSN**>**添加用户数据源**，添加驱动程序，点击 **完成**。

   ![Win-DSN1.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odbc/Win-DSN1.png)
 4. 在弹出的窗口中填写数据源名称 Name 和描述 Description，点击 **Next**。

   ![Win-DSN2.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odbc/Win-DSN2.png)
 5. 填写数据库连接信息，之后点击 **Next** 还可以设置初始化语句、TLS、游标和结果集等信息。

   ![Win-DSN3.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odbc/Win-DSN3.png)
 6. 设置完成后点击 **Finish**，数据源添加成功，点击 **确定**。

   ![Win-DSN4.png](https://obbusiness-private.oss-cn-shanghai.aliyuncs.com/doc/img/odbc/Win-DSN4.png)

## 连接示例

### 示例 1：需要添加数据源（OceanBase 数据库 Oracle 模式）

```
#include<stdio.h>
#include<assert.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>

static void odbc_print_error(SQLSMALLINT HandleType, SQLHANDLE Handle)
{
  SQLCHAR SQLState[6];
  SQLINTEGER NativeError;
  SQLCHAR SQLMessage[SQL_MAX_MESSAGE_LENGTH] = { 0 };
  SQLSMALLINT TextLengthPtr;

  SQLGetDiagRec(HandleType, Handle, 1, SQLState, &NativeError, SQLMessage, SQL_MAX_MESSAGE_LENGTH, &TextLengthPtr);
  fprintf(stdout, "[%s] (%d) %s\n", SQLState, NativeError, SQLMessage);
}

static void ASSERT_CHECK(SQLSMALLINT HandleType, SQLHANDLE Handle, SQLRETURN rcode)
{
  if(rcode != SQL_SUCCESS && rcode != SQL_SUCCESS_WITH_INFO){
    odbc_print_error(HandleType, Handle);
    assert(0);
  }
}

int main()
{
  HENV henv;
  SQLCHAR OutConnStr[255];
  SQLSMALLINT OutConnStrLen;

  // 申请环境句柄
  SQLRETURN rcode = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
  ASSERT_CHECK(SQL_HANDLE_ENV, henv, rcode);

  // 设置 ODBC 版本的环境属性
  rcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
  ASSERT_CHECK(SQL_HANDLE_ENV, henv, rcode);

  // 分配连接句柄
  SQLHDBC hdbc; rcode = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
  ASSERT_CHECK(SQL_HANDLE_DBC, hdbc, rcode);

  // 连接数据源
  //char* mydriver = (char*)"Driver={OceanBase ODBC 2.0 Driver};Server=xxx.xxx.xxx.xxx;Port=38884;Database=test;User=xxx@oracle;Password=xxx;Option=3;";
  //rcode = SQLDriverConnect(hdbc, NULL, (SQLCHAR*)mydriver, strlen((char*)mydriver) + 1, OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_NOPROMPT);
  rcode = SQLConnect(hdbc, (SQLCHAR *)"oboracle", SQL_NTS, (SQLCHAR *)"test@oracle", SQL_NTS, (SQLCHAR *)"test", SQL_NTS);
  ASSERT_CHECK(SQL_HANDLE_DBC, hdbc, rcode);

  // 创建 SQL 语句句柄
  SQLHSTMT stmt;
  rcode = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &stmt);
  ASSERT_CHECK(SQL_HANDLE_STMT, stmt, rcode);

  //  执行具体的 SQL
  rcode = SQLExecDirect(stmt, (SQLCHAR*)"select 1, 'obodbc', 88 from dual", SQL_NTS);
  ASSERT_CHECK(SQL_HANDLE_STMT, stmt, rcode);

  // 绑定和获取具体的数据项
  SQLINTEGER res = SQL_NTS;
  SQLCHAR name[128];
  SQLINTEGER age;
  SQLBindCol(stmt, 2, SQL_C_CHAR, name, sizeof(name), &res);
  SQLBindCol(stmt, 3, SQL_C_SLONG, &age, sizeof(age), &res);
  while ((rcode = SQLFetch(stmt)) != SQL_NO_DATA_FOUND)
  {
    if (rcode == SQL_ERROR) {
      printf("sql error!\n");
    } else {
      printf("name:%s, age:%ld\n", name, age);
    }
  }

  // 清理工作, 释放具体的资源句柄
  SQLFreeHandle(SQL_HANDLE_STMT, stmt);
  SQLDisconnect(hdbc);
  SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
  SQLFreeHandle(SQL_HANDLE_ENV, henv);
  return 0;
}

```

### 示例 2：只需要安装 OceanBase Connector/ODBC 驱动，无需添加数据源（在代码里面填写）

```
#include<stdio.h>
#include<assert.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>

  // 设置ODBC版本的环境属性
  rcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void *)SQL_OV_ODBC3, 0);
  ASSERT_CHECK(SQL_HANDLE_ENV, henv, rcode);

  // 连接数据源
  char* mydriver = (char*)"Driver={OceanBase ODBC 2.0 Driver};Server=xxx.xxx.xxx.xxx;Port=38884;Database=test;User=xxx@oracle;Password=xxx;Option=3;";
  rcode = SQLDriverConnect(hdbc, NULL, (SQLCHAR*)mydriver, strlen((char*)mydriver) + 1, OutConnStr, 255, &OutConnStrLen, SQL_DRIVER_NOPROMPT);
  //rcode = SQLConnect(hdbc, (SQLCHAR *)"oboracle", SQL_NTS, (SQLCHAR *)"test@oracle", SQL_NTS, (SQLCHAR *)"test", SQL_NTS);
  ASSERT_CHECK(SQL_HANDLE_DBC, hdbc, rcode);

```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
