1

我正在我的应用程序中从 ODBC 查询 Iseries,并尝试执行从 2 个表返回结果的查询。我需要加入表格,但表格位于不同的库中。我不想在查询中使用库标识符,因为当我从 dev>qa>prod 移动时我的库会发生变化。但是,我确信这些表只会在这些库中,而在其他库中不会有重复。有没有办法在不指定 Iseries 库的情况下做到这一点?

从本质上讲,我想要这个:

  select DISTINCT  GIDNBR, VSL00100.GRNAME 
FROM **QACOMMON**.CMPGRID2 CMPGRID2 INNER JOIN **QAVISLIVE**.VSL00100  VSL00100  ON VSL00100.GRNO=CMPGRID2.GIDNBR AND  
                      VSL00100.GRSUB=CMPGRID2.GIDSUB AND  
                      VSL00100.GRLOC=CMPGRID2.GIDLOC AND  
                     VSL00100.GRPOOL=CMPGRID2.GIDPOL

看起来像这样:

select DISTINCT  GIDNBR, VSL00100.GRNAME 
FROM CMPGRID2 CMPGRID2 INNER JOIN VSL00100  VSL00100  
ON 
VSL00100.GRNO=CMPGRID2.GIDNBR AND  
                  VSL00100.GRSUB=CMPGRID2.GIDSUB AND  
                  VSL00100.GRLOC=CMPGRID2.GIDLOC AND  
                 VSL00100.GRPOOL=CMPGRID2.GIDPOL

有任何想法吗?

4

1 回答 1

4

您需要进入 ODBC 连接的配置。在您使用的连接上单击“配置”,然后选择“服务器”选项卡。库列表选项是您需要使用的。

根据您的示例,您似乎需要让它说“QACOMMON QAVISLIVE”。(没有引号)

此外,您需要将命名约定更改为 *SYS 而不是 *SQL,并将默认集合字段设为空白。确保您的系统管理员将您正在使用的用户配置文件上的 CURLIB 参数设置为您希望新文件到达的任何位置。

然后保存并重试。不幸的是,当您在测试、生产和您拥有的任何其他东西之间切换时,您将不得不拥有不同的数据源或更改 ODBC 连接。

于 2009-07-01T16:43:55.953 回答