2014-03-26 10 views
0

로켓 UNIVERSE 데이터베이스를 쿼리하려고합니다. 대부분 I가 특정 유형의 필드를 누르기 전까지 작동합니다 (전부는 아니지만 일부). 공급 업체 문서 (EPICOR ECLIPSE)에서 "일반적인 파일 핸들에 대한 참조가 포함 된 사전은 'OPEN.STANDARD.FILES'에 대한 호출 없이는 작동하지 않으므로 표준 사전을 래핑해야 할 수도 있습니다 . "로켓 UNIVERSE, ODBC, 공통 파일 핸들에 대한 호출없이 데이터 파일에 대한 쿼리가 작동하지 않습니다.

그럼 내 질문에 어떻게해야합니까?

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

동일한 쿼리를 공급 업체의 응용 프로그램 환경에서 실행하면 작동합니다. 그들의 환경은 TCL 환경에도 드롭 다운 할 수있는 DOS와 같은 메뉴 시스템입니다. 그러나 분명히 관리 환경에서 무언가가 성공적으로 쿼리를 작성하는 데 필요한 종속성을 충족시킵니다.

>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

OPEN.STANDARD.FILES는 서브 루틴 또는 메인 라인 프로그램입니까? OPEN.STANDARD.FILES에서 001 번 줄을 보시면 알 수 있습니다. SUBROUTINE OPEN.STANDARD.FILES라는 단어가 포함되어 있으면 서브 루틴입니다. 그렇다면이 루틴을 프로그램으로 묶어야합니다. 그렇지 않으면 OPEN.STANDARD.FILES를 "LIST PUBS ..."전에 실행하십시오. –

+0

의견을 보내 주셔서 감사합니다. 그것은 서브 루틴입니다. 이 루틴을 프로그램에서 랩핑하려면 - 어떻게해야합니까? 어떻게 감쌌습니까? – shawno

+0

제 1 줄에 SUBROUTINE라고 쓰여져 있는지 알려주십시오. 인수가 있는지 알아야합니다. –

답변

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 

그런 다음 OPEN.STANDARD.FILES를 실행할 수 있습니다 다음과 같이

서브 루틴의 처음 몇 줄

은 목록 문 앞에 .TCL. 나는 당신이 "u2netsdk"에 대해이 태그를 가지고 있음을 발견했습니다. .NET api 또는 "cd c :/u2/eclipse"및 "uv"를 사용하여 Epicor에 액세스하고 있습니까?

.NET API를 사용하는 경우 목록 문을 실행하기 전에 .NET API에서 직접 OPEN.STANDARD.FILES를 호출 할 수 있습니다.

-Nathan

+0

이것은 굉장합니다. 고맙습니다. 귀하의 질문에 - 처음에는 명령 줄에서 TCL을 테스트했지만 막혔습니다. .NET에서 같은 오류가 발생했습니다. 목표는 .NET을 사용하여이를 수행하는 것입니다. 그래서 한 가지 더 물어볼 수 있습니까? .NET에서 이것을 호출하는 방법? 다시 한 번 감사드립니다! – shawno

+0

또한이 질문은 내가 시작한 다음과 관련이 있습니다. http://stackoverflow.com/questions/22578268/improper-data-type-with-query-in-rocket-universe-database?rq=1 그 사람에 대한 후속 코멘트를 게시하고 싶습니다. 나는 당신의 답변으로 표시 할 것입니다. 다시 한번 감사드립니다. – shawno

+0

Nathan, 서브 루틴 및 프로그램에 도움을 주셔서 감사합니다. 당신은 .NET에서 호출 할 경우 , 당신은 다음을 수행 할 수 있습니다 : 당신은 BASIC 서브 루틴을 사용하는 경우 1. \t는 .NET 제공자 1.3.0 에 대한 U2 툴킷을 설치, 당신은 두 가지 선택이있다 : 을 수행합니다. \t .NET에서 ADO.NET Provider 및 호출 서브 루틴 사용 b. \t .NET에서 UO.NET API 및 호출 서브 루틴 사용 3.\t BASIC PROGRAMS를 사용하는 경우 a. \t UO.NET의 UniCommand 클래스를 사용하고이 프로그램을 실행하십시오. 4. \t Github의 .NET 샘플은 https://github.com/RocketSoftware/u2-servers-lab/tree/master/U2-Toolkit을 참조하십시오. –