若要建立与 SAP 系统的连接,ADO.NET 客户端必须以连接字符串的形式指定 SAP 连接属性。 SAP ADO 连接字符串的格式如下所示:
[Property1]=[Value1];[Property2]=[Value2];....
使用适用于 SAP 的数据提供程序连接到 SAP 系统的连接字符串可以具有以下类型:
类型 A: 一种基于应用程序主机的连接,其中连接 URI 指定一个应用服务器,通过该服务器,SAP 数据提供者连接到 SAP 系统。
类型 B: 一个负载均衡的连接,其中连接 URI 指定一个消息服务器,用于 SAP 的数据提供程序通过该服务器连接到 SAP 系统。
类型 D: 一个基于目标的连接,其中连接 URI 指定 saprfc.ini 文件中的目标,其中包含 SAP 系统的连接参数。
下表介绍了如何在连接 URI 中指定这些连接。
类型 | 属性 1 | 属性 2 | DESCRIPTION |
---|---|---|---|
一个 | ASHOST (应用程序服务器主机) | SYSNR (SAP 系统编号) | 指定基于应用程序主机的连接。 |
B | MSHOST (消息服务器主机) | R3NAME (SAP R3 名称) | 通过消息服务器指定负载均衡连接。 对于负载均衡连接,可以指定可选的服务器组。 |
D | DEST(包含 saprfc.ini 文件中连接参数的目的地) | - | 指定基于目标的连接。 SAP 连接参数包含在 saprfc.ini 文件中的指定目标中。 只能在目标中指定 TYPE A 和 TYPE B 连接。 注意: 如果在 saprfc.ini 文件中指定连接值,请确保该文件位于与访问它的 .exe 相同的文件夹中,或位于 SAP 系统要求的标准位置。 有关详细信息,请参阅 SAP 文档。 |
根据连接类型,使用适用于 SAP 的数据提供程序连接到 SAP 系统的连接字符串可以包含以下属性。
资产 | 用于 TYPE | DESCRIPTION |
---|---|---|
应用程序服务器主机 (ASHOST) | 一个 | SAP 应用程序服务器主机的名称。 |
系统编号 (SYSNR) | 一个 | SAP 系统编号 |
应用程序服务器组名称(GROUP) | B | SAP 服务器组的名称。 这是负载均衡连接中的一组可选应用程序服务器。 |
消息服务器主机 (MSHOST) | B | SAP 消息服务器主机的名称 |
消息服务器服务 (MSSERV) | B | 系统驱动器>:\WINDOWS\system32\drivers\etc\services 文件中指定的 <SAP 消息服务器服务的名称。 如果未指定值,则 SAP 的数据提供程序假定这是“sapms<R/3 系统名称>”。 例如,如果 R/3 系统名称为 DV1,则适配器假定消息服务器服务名称为“sapmsDV1”。 但是,如果服务文件中的条目不同,则必须指定该值。 |
R/3 系统名称(R3NAME) | B | SAP R/3 的名称。 |
目的地(DEST) | D | 从 saprfc.ini 文件中选取连接参数。 |
客户(CLIENT) | A、B、D | SAP 客户端编号 |
语言(Lang) | A、B、D | 语言 |
密码 (PASSWD) | A、B、D | SAP 用户密码 |
用户名(USER) | A、B、D | 要连接到 SAP 系统的用户名 |
启用 SAP GUI 调试 (AbapDebug) | A、B、D | 可选参数,该参数指定是否启用来自 Visual Studio 的 ABAP 调试,以及适配器是否使用 SAP GUI 进行调试。 该值可以是 True 或 False;如果为 True,则启用 ABAP 调试并打开 SAP GUI。 默认值为 False。 |
追踪 RFC SDK(RfcSdkTrace) | A、B、D | 指定是否启用 RFC 库跟踪的可选参数。 该值可以是 True 或 False;如果为 True,则启用 RFC 库跟踪。 默认值为 False。 |
SapRouter (SAPROUTER) | A、B、D | 用于通过防火墙连接的 SAProuter 的可选参数。 此参数是主机名和服务名称/端口号的列表,格式如下:/H/hostname/S/portnumber。 |
注释
属性列中括号内提供的值是必须在通过编程解决方案提供连接 URI 时指定的连接属性的名称。 但是,如果使用 DDEX 插件或 SQL Server 导入和导出向导来使用 ADO 接口,则连接属性将列为友好名称。
TYPE A 的示例连接字符串
TYPE A 的示例连接字符串如下所示:
TYPE=A; ASHOST=SAPSERVER; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;
注释
默认情况下,SAP 的数据提供程序始终将连接字符串视为类型 A。
TYPE B 的示例连接字符串
TYPE B 的示例连接字符串如下所示:
TYPE=B; R3NAME=NAME1; GROUP=ADAPTER; MSHOST=MSSERVER; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;
TYPE D 的示例连接字符串
TYPE D 的示例连接字符串如下所示:
TYPE=D; DEST=TESTSAPSRV; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;
示例 saprfc.ini 文件类似于:
DEST=TESTSAPSRV
TYPE=A
ASHOST=ADAPSAP47
SYSNR=00
有关 saprfc.ini 文件的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=91457。
所有三种连接类型的密码不得包含双引号。 但是,如果密码包含任何其他特殊字符,则必须将密码括在双引号中。 例如:
ASHOST=SAPSERVER; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=",@/:;_ \\";
重要
必须为一个连接类型 A、B 或 D 指定连接参数。例如,如果在连接字符串中指定应用程序服务器主机,则不得指定消息服务器主机名或 R3NAME。