如果没有调用公共文件句柄,Rocket UNIVERSE,ODBC,对数据文件的查询将无法工作

时间:2014-03-26 18:01:08

标签: universe u2 u2netdk

我正在尝试查询火箭UNIVERSE数据库。在大多数情况下它都有效,直到我遇到某些类型的I类型的字段(不是全部,而是一些)。在供应商文档(EPICOR ECLIPSE)中,它提到了以下内容:“任何包含对公共文件句柄的引用的字典在没有调用'OPEN.STANDARD.FILES'的情况下将无法工作,因此您可能需要包装标准字典。“

所以我的问题是如何做到这一点?

当我直接从TCL查询数据库(cd c:/ u2 / eclipse并输入“uv”以进入TCL环境)时,我得到以下内容。

"LIST PSUB TSN.COMMENT 07:37:39am  22 Mar 2014  PAGE    1
@ID..................................... TSN..........

**Program "DICT.GET.LEDGER.DET.VALUE": Line 9, Improper data type.**

当我在供应商的应用程序环境中运行相同的查询时,它可以工作。他们的环境是类似DOS的菜单系统,它允许人们下载到TCL环境。但是,显然托管环境中的某些内容满足了成功查询所需的依赖关系。

子程序的前几行如下:

>ED OC OPEN.STANDARD.FILES
429 lines long.

----: P
0001:           SUBROUTINE
0002:           $INCLUDE AD.DIR CC~COMMON
0003: *
0004: *
0005: *
0006: *
0007: *
0008: *
0009: *
0010: *
0011: *
0012: *
0013: *
0014: *
0015: *
0016: *
0017: *
0018: *
0019: *
0020:           IF FILES.ARE.OPEN$ THEN RETURN
0021: *
0022:           OPEN 'ABC.CODES'        TO ABCCFILE    ELSE
----:
0023:              FLNM = 'ABC.CODES'
----:
0024:              GOSUB EXIT.OPN
.
.
.

1 个答案:

答案 0 :(得分:2)

要为此例程创建包装器,请执行以下操作:

>ED BP OPEN.STANDARD.FILES.TCL
001 * OPEN.STANDARD.FILES.TCL
002 CALL OPEN.STNADARD.FILES
003 STOP
004 END

>BASIC BP OPEN.STANDARD.FILES.TCL
>CATALOG BP OPEN.STANDARD.FILES.TCL

然后您可以在list语句之前执行OPEN.STANDARD.FILES.TCL。我刚注意到你已经为#34; u2netsdk"标记了这个标签。您是使用.NET api访问Epicor,还是使用" cd c:/ u2 / eclipse"和" uv"?

如果您使用的是.NET API,那么您可以在EXECUTE列表语句之前直接从.NET API调用OPEN.STANDARD.FILES。

-Nathan