我正在尝试查询火箭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
.
.
.
答案 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