使用 ODBC 驱动程序进行 SQL 服务

作者:郑德鼎 约 9 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

概述

要通过 ODBC 访问 ABAP 系统中的 CDS 视图实体,这些实体首先需要在后端系统中公开,然后再通过 ODBC 应用程序中 ABAP 的 ODBC

驱动程序访问它们。ODBC 应用程序可以是任何能够加载 ODBC 驱动程序的客户端工具,也可以是用能够使用 ODBC 驱动程序的程序语言(例如

C、C++、python、node.js、PHP)编写的程序。在本教程中,我们将展示 Windows 上的 Microsoft Excel

使用案例。ABAP 本身的 ODBC 驱动程序在 Windows 和 Linux 上可用。

在 Windows 上安装 ODBC 驱动程序

1\. 要安装 ABAP 的 ODBC 驱动程序,您需要访问 https://support.sap.com/en/index.html

2\. 在此之后,您可能需要登录,然后才能搜索组件 ODBC DRIVER FOR ABAP 1.0

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 打开 ODBC Driver for ABAP:Initial delivery(适用于 ABAP 的 ODBC

驱动程序:初始交付),然后单击下一页中的下载图标。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 现在根据 Windows 选择正确的下载选项

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

5\. 现在您需要下载 SAPCRYPTOLIB。点击此 链接 打开 COMMONCRYPTOLIB 8 并下载适用于 Windows 的最新版本。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

6\. 此外,您可能需要在软件中心下载 SAPCAR 才能解压缩 SAP 文件。

7\. 在 Windows 开始菜单中打开命令提示符并使用此命令解压缩您的 SAP 文件,您需要对下载的 SAPCAR

文件进行寻找,然后选择一个目录作为您的 ODBC 驱动程序位置并在那里解压缩 SAR 文件。

C:\Users\D-number\Downloads\sapcar.exe -xvf C:\Users\D-number\Downloads\Your

downloaded ODBCforABAP.SAR file

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

C:\Users\D-number\Downloads\sapcar.exe -xvf C:\Users\D-number\Downloads\Your

downloaded SAPCRYPTOLIBP.SAR file

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

8\. 在此之后,您将在 ODBC 驱动程序目录中至少看到以下文件:

ODBC_driver_for_ABAP_x64u.msi sapcrypto.dll

9\. 启动 Windows 安装程序文件以安装适用于 ABAP 的 ODBC 驱动程序

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

10.已安装的文件位于 中。 :\Program Files\SAP\ODBC driver for ABAP

ODBC 驱动程序现在已准备好在 ODBC 数据源中使用。

创建测试数据表

1\. 打开 ADT 并登录您的 ABAP 系统环境,这里我登录是ABAP云环境。如果您没有包,请创建一个新包,例如

.Z_PACKAGE_SQL_0001

2\. 2.右键单击您的软件包,然后选择 New > Other ABAP Repository Object (新建其他 ABAP 存储库对象)。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 选择 Dictionary > Database Table,然后单击 Next

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 输入以下名称和说明

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

5\. 选择传输请求,然后单击 Next,您创建的 Table 将被打开,并定义表的结构。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

6\. 保存并激活您的更改。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

7\. 继续创建测试表,并添加表结构字段,并保存激活。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

为测试数据表添加测试数据

1\. 您需要用一些测试数据填充测试表。右键单击您的软件包,然后选择 New > ABAP Class。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

2\. 输入以下名称和说明,点击Next

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 然后在类中添加相应的添加数据的代码

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 保存并激活类,F9运行该类填充数据库表。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

5\. 返回您的表并右键单击每个表来检查它们 > Open With > Data Preview

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

为表创建CDS视图实体

1\. 右键单击第一个表,然后选择 New Data Definition

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

2\. 输入以下名称和说明:点击Next

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 选择传输请求,点击NEXT,并选择 Define View Entity,然后单击 Finish

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 选择另一个表创建数据实体,保存并激活数据实体。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

创建 Service Definition 和 SQL 类型的 Service Binding

1\. 右键单击其中一个,然后选择 New Service Definition (新建服务定义 ZORDERSVIEW_001)。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

2\. 输入以下信息。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 点击传输请求,并完成,添加第二个视图并为两个视图实体添加别名。。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 新创建的服务定义现在可以在服务绑定中使用。您需要 SQL - Web API 类型的服务绑定,以便稍后使用 ODBC

访问对象。右键单击服务定义,然后选择 New Service Binding

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

5\. 输入以下信息,点击NEXT.

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

6\. 选择传输请求,然后单击 Finish。正如您稍后将看到的,在您的情况下,服务绑定名称将充当外部 ODBC

使用者的架构名称。不要忘记激活服务绑定。ZORDERS_001

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

创建通信场景

1\. 要访问服务绑定,您需要 ABAP 系统中的技术用户。因此,您现在将在 SAP BTP ABAP

环境系统中创建通信方案和通信安排,右键单击您的包,然后选择 New > Other ABAP Repository Object >

Communication Scenario (通信方案中的其他 ABAP 存储库对象)

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

2\. 点击NEXT,输入以下信息。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

3\. 点击NEXT,选择传输请求,并点击完成。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

4\. 将打开通信方案。转到 Inbound 选项卡,由于您希望在 Windows Excel 测试用例中使用用户/密码身份验证,因此请选择 Basic

作为 Supported Authentication Methods。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

5\. 在 Inbound Services 部分中,选择 Add... 按钮并输入 Inbound Service ID,然后单击

Finish。S_PRIVILEGED_SQL1

入站服务是用于对 CDS 视图实体进行特权访问的预配置服务,即不应用 DCL。(DCL 代表数据控制语言。它提供了一种访问控制机制,以根据条件限制 CDS

视图从数据库中返回的结果)S_PRIVILEGED_SQL1

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

6\. 添加其他授权才能启用对服务绑定的访问。转到选项卡授权.在Authorization

Objects下,按Insert按钮,在Authorization Object字段中输入,然后单击OK。S_SQL_VIEW

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

7\. 选择添加的授权对象,并在详细信息中填写授权:

SQL_SCHEMA必须包含要授予访问权限的服务绑定的名称。

值 * for 表示您允许访问附加到服务绑定 ZORDERS

的服务定义中的所有视图。SQL_VIEW由于当前仅允许只读访问权限,因此是强制性的。SQL_VIEWOP=SELECT

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

8\. 保存您的条目,然后按Publish Locally按钮将其发布到当前开发系统中。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

创建通信系统

1\. ABAP 系统中的最终准备任务无法在 ADT 中执行,需要在系统的管理 UI 中完成。右键单击您的项目,打开 Properties

(属性)。在弹出窗口中,选择ABAP开发,然后选择系统 URL,在网页打开。

使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图
使用 ODBC 驱动程序进行 SQL 服务 - 封面图

2\. 使用您的用户名和密码登录。在 Communication Manag

...

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「使用ODBC驱动程序进行SQL服务.md」整理生成,仅用于内部技术分享与学习交流。