11 sql-server oledb database-connection linked-server ibm-midrange
我有一个大问题:我必须连接(我只想读取数据,而不是写入)到我的客户的IBM AS/400(也就是iSeries,现在是IBM i)服务器......
我想我需要所有参数(由AS/400程序员给我),但我无法弄清楚我必须使用哪个驱动程序,以及我是否需要所有软件!
我已经安装了IBM AS/400 ClientAccess 5.8驱动程序(带有最新操作系统的补丁),现在我正在尝试Linked Server在我的Sql Server 2008 R2(x64)服务器中配置一个新的.
第一个问题:我应该使用哪个驱动程序?
我有很多选择(但也许这些都没有!):
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
Run Code Online (Sandbox Code Playgroud)
......或者其他通用OLEDB/ODBC驱动程序?!
第二个问题:我应该在哪里放置参数(我的意思是哪个字段!)
无论如何,在我为我选择一个提供者时Linked Server,显然我必须设置我的参数......但我只有这个:
ACG_DATV2)第三个问题:我该如何撰写查询?如何引用AS/400"存档"和表?
我不知道如何构建我的阅读查询:表和视图(?!)存储在哪里以及如何引用它们?
先感谢您!
MAX*_*AXE 15
我认为有很多方法可以达到你想要的效果,但我会试着解释一下你的意思.
使用该版本的IBM ClientAccess(以及补丁),如果您使用正确的数据提供程序,我应该不会遇到与Sql Server 2008 R2链接服务器连接的麻烦.
首先,尝试以这种方式配置链接服务器:
MYAS400)IBM DB2 UDB for iSeries IBMDASQL OLE DB ProvideriSeries Access OLEDB Driver192.168.0.1)如果使用向导或SQL代码配置链接服务器,则第一次需要访问AS/400服务器的数据时,系统会要求您提供凭据,以及典型的iSeries窗口(请查看我的示例).
设置您的用户名(用户ID)和相对密码,而不考虑字符串的情况!!

作为一般提示(但这只与我的经验有关!),尽量避免使用特殊字符和大/小写区别...
如果你到达这里(链接服务器创建没有问题),链接服务器应该工作(所以第一个和第二个问题都解决了):让我们构建第一个查询!
创建链接服务器后,您只需要正确引用存档,库,当然还有正确的表和链接服务器(按名称):使用此信息,构建一个这样的查询(这是通常的T-SQL语法):
SELECT
(Field1)
, (Field2)
, *
FROM (Linked Server Name).(Catalog Name).(Library).(TableName)
Run Code Online (Sandbox Code Playgroud)
您可能缺少的唯一信息是"存档":您可以轻松找到它浏览新链接服务器中的目录树,或者只使用iSeries Access Navigator工具!
所以,在你的情况下,我认为查询应该是(或多或少):
SELECT
FILIO
, DTVLD
, DTVLA
, SEQZA
, CFIMP
, PADRE
, TPVLD
, CMVLD
, *
FROM MYAS400.S242DA0A.ACG_DATV2.ANLE200F
Run Code Online (Sandbox Code Playgroud)
请注意,S242DA0A仅在我的情况下有效...
还要记住:
SELECT (Fields) INTO myTable FROM (AS/400 table)祝好运!
| 归档时间: |
|
| 查看次数: |
15637 次 |
| 最近记录: |