sql-server – 从Sql Server 2008 R2连接到IBM i服务器

前端之家收集整理的这篇文章主要介绍了sql-server – 从Sql Server 2008 R2连接到IBM i服务器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个很大的交易:我必须连接(我只想读取数据,不写)给我的客户的IBM AS / 400(又名iSeries,现在I​​BM i)服务器…

我想我有所有的参数(由AS / 400程序员给我),但是我不知道我要使用哪个驱动程序,如果我需要所有的软件,

我已经安装了IBM AS / 400 ClientAccess 5.8驱动程序(使用最新的操作系统的补丁),现在我试图在我的sql Server 2008 R2(x64)服务器中配置一个新的Linked Server.

第一个问题:我应该使用哪个驱动程序?

我有这么多的选择(但也可能没有这些作品!!):

IBM DB2 UDB for iSeries IBMDAsql OLE DB Provider
IBM DB2 UDB for iSeries IBMDA400 OLE DB Provider
IBM DB2 UDB for iSeries IBMDARLA OLE DB Provider

…或者其他通用的OLEDB / ODBC驱动程序?

第二个问题:我应该把我的参数放在哪里(我的意思是哪个字段)

在任何情况下,在我选择一个提供者为我的链接服务器,显然我必须设置我的参数…但我只有这样:

> ADMIN用户用户名
> ADMIN用户的密码
> AS / 400服务器IP地址
>“main”档案的名称,其中存储了我的数据(类似于ACG_DATV2)

第三个问题:我该怎么写我的查询?如何引用AS / 400“归档”和表?

我不知道如何构建我的阅读查询:表和视图(?!)在哪里存储,我如何引用它们?

先谢谢你!

解决方法

我想有很多方法可以达到你想要的目的,但是我会尝试解释一下你会做什么.

使用该版本的IBM ClientAccess(以及补丁),如果您使用正确的数据提供程序,我不应该在与sql Server 2008 R2链接服务器连接时遇到麻烦.

首先,尝试以这种方式配置您的链接服务器:

>链接服务器名称:你想要什么,它只是一个自定义名称(例如:MYAS400)
>提供者:IBM DB2 UDB for iSeries IBMDAsql OLE DB Provider
>产品名称:不重要,像iSeries Access OLEDB驱动程序
>数据源:AS / 400服务器IP地址(例如:192.168.0.1)

无论是使用向导还是sql代码配置链接服务器,首次需要访问AS / 400服务器的数据时,都会向您询问凭据,并使用典型的iSeries窗口(请参阅我的示例).

设置您的用户名(用户名)和相对密码,而不考虑字符串的情况!

作为一般的提示(但这只是与我的经验有关!),尽量避免特殊字符和上下限的区别…

如果你到达这里(在链接服务器创建中没有问题),链接服务器应该工作(所以第一个和第二个问题都解决了):让我们构建第一个查询

一旦创建了链接服务器,您需要的只是正确地引用存档,库,当然还有正确的表和链接服务器(按名称):使用此信息,构建一个这样的查询(这是通常的T-sql语法):

SELECT
    (Field1),(Field2),*
FROM (Linked Server Name).(Catalog Name).(Library).(TableName)

您可能缺少的唯一信息是“归档”:您可以轻松找到它在新的链接服务器中浏览目录树,或只使用iSeries Access Navigator工具!

所以,在你的情况下,我认为查询应该是(或多或少):

SELECT
    FILIO,DTVLD,DTVLA,SEQZA,CFIMP,PADRE,TPVLD,CMVLD,*
FROM MYAS400.S242DA0A.ACG_DATV2.ANLE200F

请注意,S242DA0A仅在我的情况下有效…

还要记住:

> AS / 400可能会经常询问您的凭据:如果您关闭并重新打开SSMS,也可以.
>性能…更好地谈谈别的东西:) …提取你的sql Server表中的表,并从那里查询它们!使用简单的方法:SELECT(Fields)INTO myTable FROM(AS / 400表)
>我已经尝试了这个过程很多次,我没有很多麻烦(一旦我熟练了…)…但只读取数据(如你所问)!从来没有尝试更新数据!

祝你好运!

猜你在找的MsSQL相关文章