Rocket UNIVERSE, ODBC, queries to datafile won't work without a call to common file handle

StackOverflow https://stackoverflow.com/questions/22669360

  •  22-06-2023
  •  | 
  •  

سؤال

I am trying to query a rocket UNIVERSE database. For the most part it works, until I hit certain types of fields that are of type I (not all, but some). In the vendor documentation (EPICOR ECLIPSE) it mentions as a note the following, "Any dictionary that contains a reference to a common file handle will not work without a call to 'OPEN.STANDARD.FILES' so you may need to wrap standard dictionaries."

So my question is how to do that?

When I query the database directly from TCL (cd c:/u2/eclipse and type "uv" to get to the TCL environment) I get the following.

"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.**

When I run the same query within the vendor's application environment it works. Their environment is a DOS like menu system that does allow one to drop down to a TCL environment as well. But, obviously something in their managed environment satisfies dependencies that are needed to make a successful query.

The first few lines of the subroutine are as follows:

>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
.
.
.
هل كانت مفيدة؟

المحلول

To create a wrapper for this routine, do the following:

>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

Then you can execute OPEN.STANDARD.FILES.TCL before your list statement. I just noticed that you are have this tagged for "u2netsdk". Are you accessing Epicor using .NET api, or the "cd c:/u2/eclipse" and "uv"?

If you are using the .NET api, then you can call OPEN.STANDARD.FILES directly from the .NET api before your EXECUTE the list statement.

-Nathan

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top