了解 SAP 连接字符串的数据提供程序类型
若要建立与 SAP 系统的连接,ADO.NET 客户端必须以连接字符串的形式指定 SAP 连接属性。 SAP ADO 连接字符串的格式如下所示:
[Property1]=[Value1];[Property2]=[Value2];....
使用适用于 SAP 的数据提供程序连接到 SAP 系统的连接字符串可以具有以下类型:
类型 A: 基于应用程序主机的连接,其中连接 URI 指定用于 SAP 的数据提供程序连接到 SAP 系统的应用程序服务器。
类型 B: 负载均衡连接,其中连接 URI 指定消息服务器,用于 SAP 的数据提供程序通过该消息服务器连接到 SAP 系统。
类型 D: 基于目标的连接,其中连接 URI 在包含 SAP 系统的连接参数的 saprfc.ini 文件中指定目标。
下表介绍了如何在连接 URI 中指定这些连接。
TYPE | 属性 1 | 属性 2 | 说明 |
---|---|---|---|
A | ASHOST (应用程序服务器主机) | SYSNR (SAP 系统编号) | 指定基于应用程序主机的连接。 |
B | MSHOST (消息服务器主机) | R3NAME (SAP R3 名称) | 指定通过消息服务器的负载均衡连接。 对于负载均衡连接,可以指定可选的服务器组。 |
D | 包含 saprfc.ini 文件) 中的连接参数的 DEST (目标 | - | 指定基于目标的连接。 SAP 连接参数包含在 saprfc.ini 文件的指定目标中。 目标中只能指定 TYPE A 和 TYPE B 连接。 注意: 如果在 saprfc.ini 文件中指定连接值,请确保该文件与访问该文件的 .exe 位于同一文件夹中,或者位于 SAP 系统所需的标准位置。 有关详细信息,请参阅 SAP 文档。 |
根据连接类型,使用适用于 SAP 的数据提供程序连接到 SAP 系统的连接字符串可以包含以下属性。
属性 | 用于 TYPE | 说明 |
---|---|---|
应用程序服务器主机 (ASHOST) | A | SAP 应用程序服务器主机的名称。 |
系统编号 (SYSNR) | A | 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 文件选取连接参数。 |
客户端 (客户端) | A、B、D | SAP 客户端编号 |
语言 (Lang) | A、B、D | 语言 |
密码 (PASSWD) | A、B、D | SAP 用户密码 |
用户名 (USER) | A、B、D | 要连接到 SAP 系统的用户名 |
(AbapDebug) 启用 SAP GUI 调试 | 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 接口,连接属性将作为友好名称列出。
类型 A 的示例连接字符串
类型 A 的示例连接字符串如下所示:
TYPE=A; ASHOST=SAPSERVER; SYSNR=00; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;
注意
默认情况下,适用于 SAP 的数据提供程序始终将连接字符串视为 A 类型。
类型 B 的示例连接字符串
类型 B 的示例连接字符串如下所示:
TYPE=B; R3NAME=NAME1; GROUP=ADAPTER; MSHOST=MSSERVER; CLIENT=800; LANG=EN; USER=YourUserName; PASSWD=YourPassword;
类型 D 的示例连接字符串
类型 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。