Rocket UNIVERSE, ODBC, запросы к файлу данных не будут работать без вызова общего дескриптора файла
Я пытаюсь запросить ракетную базу данных 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 ответ
Чтобы создать оболочку для этой процедуры, выполните следующие действия:
>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
Затем вы можете выполнить OPEN.STANDARD.FILES.TCL перед вашим оператором списка. Я только что заметил, что вы пометили это как "u2netsdk". Вы получаете доступ к Epicor с помощью.NET api или "cd c:/u2/eclipse" и "uv"?
Если вы используете.NET API, то вы можете вызвать OPEN.STANDARD.FILES непосредственно из.NET API, прежде чем выполнить EXECUTE list.
-Натан