ASP 인터페이스
본 장은 ASP 인터페이스에서 사용하는 함수와 예제를 설명한다.
1. 개요
ASP(Active Server Pages) 인터페이스는 웹 환경에서 동적으로 웹 페이지를 작성하여 사용자가 볼 수 있도록 하는 스크립트이다. ASP에서 Tmax의 서비스를 호출하려면 Tmax에서 제공하는 tmaxcomcli.dll 인터페이스를 사용해야 한다.
tmaxcomcli.dll은 인프로세스 서버로 동작하며 다음과 같은 4개의 인터페이스가 있다.
모듈 | 설명 |
---|---|
Tmaxcom.Atmi |
기본적인 Tmax 함수를 래핑한 메소드를 포함한다. |
Tmaxcom.Etc |
Tmaxcom.Atmi에서 제공하는 것 이외의 함수를 래핑한 메소드를 포함한다. |
Tmaxcom.Fdl |
Tmax 필드 버퍼를 처리하는 함수를 래핑한 메소드를 포함한다. |
Tmaxcom.Tx |
Tmax 트랜잭션 함수를 래핑한 메소드를 포함한다. |
ASP에서 Tmax의 서비스는 위의 인터페이스에 대한 Object를 생성한 후 해당하는 메소드를 호출함으로써 수행할 수 있다. 이에 대한 자세한 사항은 예제 프로그램을 참고한다.
다음은 각각의 ASP 인터페이스에서 사용하는 함수의 목록이다.
-
Atmi 인터페이스 메소드
함수 설명 Tmax 시스템을 호출할 때 설정된 에러값을 반환하는 함수이다.
서비스에서 tpreturn할 경우 설정한 urcode를 반환하는 함수이다.
비동기형 서비스 요청 송신 함수이다.
유형 버퍼(Typed Buffer) 할당 함수이다.
동기형 서비스 요청 송수신 함수이다.
OnTpacall이 반환한 호출 구별자인 cd로 응답을 취소한다.
대화형 서비스와 통신 연결을 하는 함수이다.
대화형 통신 연결 종료 함수이다.
Tmax 시스템과의 연결을 해제하는 함수이다.
유형 버퍼(Typed Buffer)에 할당된 메모리를 해제하는 함수이다.
OnTpalloc등으로 할당한 버퍼에 대한 포인터가 가리키고 있는 값을 가져오는 함수이다.
비동기적으로 요청한 서비스에 대한 응답 수신 함수이다.
OnTpalloc 등으로 할당한 버퍼에 대한 포인터가 가리키고 있는 곳에 value값을 설정하는 함수이다.
유형 버퍼(Typed Buffer)를 재할당하는 함수이다.
대화형 통신으로 연결된 상대방 프로그램으로부터 송신된 데이터를 수신하기 위해 사용되는 함수이다.
대화형 통신을 할 경우 메시지를 송신하는 함수이다.
Tmax 시스템에 연결하는 함수이다.
버퍼의 유형 및 하위 유형에 대한 정보를 제공하는 함수이다.
-
기타 인터페이스 메소드
함수 설명 클라이언트가 Tmax 시스템과 연결된 상태인지 체크하는 함수이다.
환경변수를 파일로부터 로드하는 함수이다.
최대 sec시간 동안 sleep하다가 그 안에 데이터가 도착하면 즉시 반환하는 함수이다.
최대 usec시간 동안 sleep하다가 그 안에 데이터가 도착하면 즉시 반환하는 함수이다.
tpenq()를 이용하여 서비스를 요청한 결과나 또는 tpenq()를 이용할 때 서비스명을 NULL로 하여 저장한 데이터를 읽는 함수이다.
RQ에 데이터를 저장하는 함수이다.
Tmax 시스템을 호출할 때 발생한 오류의 자세한 정보를 얻을 때 사용하는 함수이다.
OnTpdeq()로 RQ에서 데이터를 읽은 경우 해당 데이터에 대한 상세한 정보를 알고자 할 때 사용하는 함수이다.
OnTpdeq()로 RQ에서 데이터를 읽은 경우 해당 데이터의 서비스명을 알고자 할 때 사용하는 함수이다.
str이라는 이름으로 등록된 환경변수의 값을 반환하는 함수이다.
str로 입력된 '이름=값’을 환경변수에 적용하는 함수이다.
현재 큐에 저장된 데이터의 통계값을 반환하는 함수이다.
현재 큐에 저장된 데이터 중 특정 서비스에 대한 통계값을 반환하는 함수이다.
OnTpdeq() 등으로 RQ를 통한 서비스 수행 중 네트워크 불안정이나 기타 서버 측의 오류로 서비스 수행을 실패하여 fail 큐에 쌓인 클라이언트의 서비스 요청 데이터를 다시 request 큐에 넣는 함수이다.
현재 접속된 클라이언트를 즉시 해제하는 함수이다.
서버에 설정되어 있는 서비스 제한시간, 즉 Blocking Timeout 시간을 변경할 때 사용하는 함수이다.
서브큐 번호에 해당하는 큐의 이름을 반환하는 함수이다.
클라이언트가 Tmax 백업 시스템으로 연결하는 함수이다.
-
FDL 인터페이스 메소드
함수 설명 필드 버퍼의 크기를 계산한 후 메모리를 할당하는 함수이다.
OnTpalloc()으로 필드 버퍼를 메모리에 할당받을 때 적정한 메모리를 할당받기 위하여 사전에 필드 버퍼의 크기를 계산하는 함수이다.
필드 버퍼에서 지정한 필드키의 전체 데이터를 삭제하는 함수이다.
필드 버퍼에 지정한 필드키의 필드 순번에 해당되는 데이터를 삭제하는 함수이다.
필드 버퍼 내에 있는 모든 필드의 수를 반환하는 함수이다.
필드 버퍼의 메모리를 해제하는 함수이다.
필드 버퍼에서 필드키에 해당되는 필드 데이터를 반환하는 함수이다.
필드 버퍼의 크기를 반환하는 함수이다.
지정한 필드명과 일치하는 필드키를 반환하는 함수이다.
지정한 필드키와 일치하는 필드명을 반환하는 함수이다.
지정한 필드키의 필드 타입을 정수로 반환하는 함수이다.
지정한 필드키의 필드 타입을 문자열로 반환하는 함수이다.
메모리에 할당된 필드 버퍼 중 아직 사용되지 않은 필드 버퍼의 크기를 계산하는 함수이다.
메모리에 할당된 필드 버퍼 중 아직 사용 중인 필드 버퍼의 크기를 계산하는 함수이다.
필드 버퍼에 저장되어 있는 필드 데이터를 지정한 타입으로 변환하여 순차적으로 반환하는 함수이다.
필드 버퍼에 저장되어 있는 필드 데이터를 순차적으로 반환하는 함수이다.
지정한 필드키에 저장되어 있는 필드 데이터 중 지정한 데이터가 저장되어 있는 필드 개수을 반환하는 함수이다.
지정한 필드키에 저장되어 있는 필드 데이터 중 지정한 데이터가 저장되어 있는 필드 순번을 반환하는 함수이다.
필드 버퍼에 지정한 필드키의 필드 순번에 해당하는 필드 데이터를 반환하는 함수이다.
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 정수로 변환하여 반환하는 함수이다.
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 문자열로 변환하여 반환하는 함수이다.
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 지정한 타입으로 변환하여 반환하는 함수이다.
필드 버퍼를 초기화하는 함수이다.
필드 버퍼에 지정한 필드키의 필드 순번에 데이터를 저장하는 함수이다.
지정한 필드 버퍼가 유효한지(OnFballoc 또는 OnTpalloc으로 버퍼를 할당받은 변수인지) 확인하는 함수이다.
필드 버퍼에 지정한 필드키의 필드 순번에 필드 데이터가 존재하는지 확인하는 함수이다.
메모리로 로딩된 FDL 파일을 새로 로딩하는 경우 이 함수를 호출할 수 있다.
필드 버퍼에서 지정한 필드키의 필드 순번을 반환하는 함수이다.
새로운 필드키를 동적으로 생성하는 함수이다.
메모리로 로딩된 FDL 파일을 새로 로딩하는 경우 이 함수를 호출할 수 있다.
필드 버퍼에 새로운 필드를 추가하는 함수이다.
필드 버퍼에 데이터를 지정한 타입으로 변환한 후 새로운 필드를 추가하여 저장하는 함수이다.
필드 버퍼를 메모리에 다시 할당하는 함수이다.
필드 버퍼를 조작할 때 에러 내용을 문자열로 반환하는 함수이다.
지정한 필드 데이터를 지정한 타입으로 데이터형을 변환하여 반환하는 함수이다.
필드 버퍼에 지정한 필드키의 필드 순번에 해당되는 데이터를 변경하는 함수이다.
필드 버퍼와 관련된 API 함수를 수행하는 도중에 에러가 발생하였을 경우 에러값을 반환하는 함수이다.
필드 버퍼와 관련된 API 함수를 수행하는 도중에 에러가 발생하였을 경우 에러값을 반환하는 함수이다.
-
Tx 인터페이스 메소드
함수 설명 전역 트랜잭션을 시작하는 함수이다.
전역 트랜잭션을 Commit하는 함수이다.
전역 트랜잭션을 Rollback하는 함수이다.
전역 트랜잭션의 Timeout을 설정하는 함수이다.
각 함수의 내부적으로 호출되는 함수에 대한 자세한 내용은 Tmax FDL Reference Guide 또는 Tmax Reference Guide를 참고한다. |
2. Atmi 인터페이스 메소드
2.1. OnGettperrno
Tmax 시스템을 호출할 때 설정된 에러값을 반환하는 함수이다.
-
프로토타입
OnGettperrno()
-
반환값
에러값을 반환한다.
-
관련함수
OnTpurcode(), OnTpstrerror()
2.2. OnGettpurcode
서비스에서 tpreturn할 경우 설정한 urcode를 반환하는 함수이다.
-
프로토타입
OnGettpurcode()
-
반환값
urcode를 반환한다.
-
관련함수
OnGettperrno(), OnTpstrerror()
2.3. OnTpacall
비동기형 서비스 요청을 송신하는 함수로 내부적으로 tpacall을 호출한다.
-
프로토타입
OnTpacall(VARIANT svc, VARIANT data, VARIANT len, VARIANT flags)
-
파라미터
파라미터 설명 svc
처리를 요청할 서비스명이다.
data
서비스 요청의 데이터에 대한 포인터이다. 데이터가 NULL이 아닌 경우는 반드시 OnTpalloc 또는 OnFballoc으로 할당된 버퍼에 대한 포인터이어야 한다.
len
송신할 데이터의 길이를 지정한다.
flags
tpcall을 하기위한 flags를 의미한다.
-
반환값
반환값 설명 구별자(descriptor)
함수 호출에 성공한 경우이다. 구별자는 OnTpgetrply(), OnTpcancel()등의 메소드에서 파라미터로 사용된다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpcall(), OnTpgetrply(), OnGettperrno()
2.4. OnTpalloc
유형 버퍼(Typed Buffer) 할당 함수로 내부적으로 tpalloc을 호출한다.
-
프로토타입
OnTpalloc(VARIANT type, VARIANT subtype, VARIANT size)
-
파라미터
파라미터 설명 type
지정된 유형을 나타낸다(FIELD/STRING etc.).
subtype
구조체 버퍼를 사용하는 경우 사용되는 파라미터로, ASP에서는 사용되지 않는다.
size
버퍼의 크기를 의미한다.
-
반환값
반환값 설명 적절한 유형 버퍼에 대한 포인터
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTprealloc(), OnTpfree(), OnGettperrno()
2.5. OnTpcall
동기형 서비스 요청 송수신 함수로 내부적으로 tpcall을 호출한다.
-
프로토타입
OnTpcall(VARIANT svc, VARIANT idata, VARIANT ilen, VARIANT *odata, VARIANT *olen, VARIANT flags)
-
파라미터
파라미터 설명 svc
처리를 요청할 서비스명이다.
idata
서비스 요청의 데이터에 대한 포인터이다. 데이터가 NULL이 아닌 경우는 반드시 OnTpalloc 또는 OnFballoc으로 할당된 버퍼에 대한 포인터이어야 한다.
ilen
송신할 데이터의 길이를 지정한다.
odata
수신될 응답 버퍼에 대한 포인터로 반드시 OnTpalloc 또는 OnFballoc으로 할당된 버퍼에 대한 포인터이어야 한다.
olen
수신한 데이터의 길이를 받는다.
flags
tpcall을 하기 위한 flags를 의미한다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpalloc(), OnTpacall(), OnTpgetrply(), OnGettperrno()
2.6. OnTpcancel
OnTpacall이 반환한 호출 구별자인 cd로 응답을 취소하는 함수로 내부적으로 tpcancel을 호출한다.
-
프로토타입
OnTpcancel(VARIANT cd)
-
파라미터
파라미터 설명 cd
OnTpacall의 반환값으로 받아 온 구별자이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpacall(), OnTpgetrply(), OnGettperrno()
2.7. OnTpconnect
대화형 서비스와 통신 연결을 하는 함수로 내부적으로 tpconnect를 호출한다.
-
프로토타입
OnTpconnect(VARIANT svc, VARIANT data, VARIANT len, VARIANT flags)
-
파라미터
파라미터 설명 svc
통신 연결을 하려는 서비스명이다.
data
연결을 설정하는 과정에서 서비스 루틴에 전달하고자 하는 데이터의 포인터이다.
len
연결을 설정하는 과정에서 서비스 루틴에 전달하고자 하는 데이터의 사이즈이다.
flags
통신 연결할 때 flags에 다음 중에서 설정한다.
-
TPNOTRAN
-
TPSENDONLY
-
TPRECVONLY
-
TPNOTIME
-
TPSIGRSTRT
이 중 TPSENDONLY 또는 TPRECVONLY 둘 중 하나는 OnTpconnect일 경우 반드시 설정해야 한다.
-
-
반환값
반환값 설명 구별자(descriptor)
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTprecv(), OnTpsend(), OnTpdiscon(), OnGettperrno()
2.8. OnTpdiscon
대화형 통신 연결 종료 함수로 내부적으로 tpdiscon을 호출한다.
-
프로토타입
OnTpdiscon(VARIANT cd)
-
파라미터
파라미터 설명 cd
OnTpconnect에서 반환한 구별자이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpconnect(), OnTprecv(), OnTpsend(), OnGettperrno()
2.9. OnTpend
Tmax 시스템과의 연결을 해제하는 함수로 내부적으로 tpend를 호출한다.
-
프로토타입
OnTpend()
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpstart(), OnGettperrno()
2.10. OnTpfree
유형 버퍼(Typed Buffer)에 할당된 메모리를 해제하는 함수로 내부적으로 tpfree를 호출한다.
-
프로토타입
OnTpfree(VARIANT ptr)
-
파라미터
파라미터 설명 ptr
메모리를 해제하고 싶은 버퍼의 포인터이다.
-
반환값
함수 호출자에 아무 값도 반환하지 않는다.
-
관련함수
OnTpalloc()
2.11. OnTpget
OnTpalloc 등으로 할당한 버퍼에 대한 포인터가 가리키고 있는 값을 가져오는 함수이다.
-
프로토타입
OnTpget(VARIANT buf, VARIANT *loc)
-
파라미터
파라미터 설명 buf
OnTpalloc으로 받아 온 버퍼에 대한 포인터이다.
value
값을 받아올 변수이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다.
-
예제
Dim buf Dim rVal Dim msg Dim i ... buf = OnTpalloc ("STRING", "", CINT(0)) ... OnTpput buf, "abcd" rVal = OnTpcall("TOUPPER", buf, CINT(0), buf2, i, CINT(0)) ... OnTpget buf, msg ...
-
관련함수
OnTpput()
2.12. OnTpgetrply
비동기적으로 요청한 서비스에 대한 응답 수신 함수로 내부적으로 tpgetrply를 호출한다.
-
프로토타입
OnTpgetrply(VARIANT cd, VARIANT *data, VARIANT *len, VARIANT flags)
-
파라미터
파라미터 설명 cd
OnTpacall의 반환값으로 받아 온 구별자이다.
data
수신될 응답 버퍼에 대한 포인터로 반드시 OnTpalloc 또는 OnFballoc으로 할당된 버퍼에 대한 포인터이어야 한다.
len
수신한 데이터의 길이를 받는다.
flags
tpcall을 하기 위한 flags이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpalloc(), OnTpacall(), OnGettperrno()
2.13. OnTpput
OnTpalloc 등으로 할당한 버퍼에 대한 포인터가 가리키고 있는 곳에 value값을 설정하는 함수이다.
-
프로토타입
OnTpput(VARIANT *buf, VARIANT value)
-
파라미터
파라미터 설명 buf
OnTpalloc으로 받아 온 버퍼에 대한 포인터이다.
value
buf에 설정할 값이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다.
-
예제
Dim buf Dim rVal Dim msg Dim i ... buf = OnTpalloc ("STRING", "", CINT(0)) ... OnTpput buf, "abcd" rVal = OnTpcall("TOUPPER", buf, CINT(0), buf2, i, CINT(0)) ... OnTpget buf, msg ...
-
관련함수
OnTpget()
2.14. OnTprealloc
유형 버퍼(Typed Buffer)의 재할당하는 함수로 내부적으로 tprealloc을 호출한다.
-
프로토타입
OnTprealloc(VARIANT ptr, VARIANT size)
-
파라미터
파라미터 설명 ptr
재할당하고자 하는 유형 버퍼의 포인터이다.
size
재할당하고자 하는 유형 버퍼의 사이즈이다.
-
반환값
반환값 설명 적절한 유형 버퍼에 대한 포인터
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpalloc(), OnTpfree(), OnGettperrno()
2.15. OnTprecv
대화형 통신으로 연결된 상대방 프로그램으로부터 송신된 데이터를 수신하기 위해 사용되는 함수로 내부적으로 tprecv를 호출한다.
-
프로토타입
OnTprecv(VARIANT cd, VARIANT *data, VARIANT *len, VARIANT flags, VARIANT *revent)
-
파라미터
파라미터 설명 cd
OnTpconnect에서 반환한 구별자이다.
data
OnTpalloc 또는 OnFballoc 등으로 할당된 수신할 데이터를 받을 버퍼이다.
len
데이터의 길이를 받아올 변수를 의미한다.
flags
대화형 서비스와의 통신에서 설정 가능한 flags이다.
다음은 사용 가능한 flags이다.
-
TPNOCHANGE
-
TPNOBLOCK
-
TPNOTIME
-
TPSIGRSTRT
revent
구별자인 cd에 대한 이벤트가 존재한다면 OnTpsend는 실패하게 되며 데이터는 송신되지 않는다. 이벤트 유형은 revent로 반환된다.
다음은 가능한 이벤트이다.
-
TPEV_DISCONIMM
-
TPEV_SVCERR
-
TPEV_SVCFAIL
이에 대한 자세한 설명은 Tmax Reference Guide를 참고한다.
-
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. 반환할 때 revent가 TREV_SVCFAIL이면, OnGettpurcode()로 서비스에서 tpreturn()를 호출할 때 전달된 urcode값이 된다.
-
관련함수
OnTpconnect(), OnTpsend(), OnTpdiscon(), OnGettperrno()
2.16. OnTpsend
대화형 통신을 할 경우 메시지를 송신하는 함수로 내부적으로 tpsend를 호출한다. 호출자는 반드시 통신 제어권을 가지고 있어야 한다.
-
프로토타입
OnTpsend(VARIANT cd, VARIANT data, VARIANT len, VARIANT flags, VARIANT *revent)
-
파라미터
파라미터 설명 cd
OnTpconnect에서 반환한 구별자이다.
data
OnTpalloc 또는 OnFballoc등으로 할당된 버퍼이다.
len
데이터의 길이를 나타낸다.
flags
대화형 서비스와의 통신에서 설정 가능한 flags이다.
다음은 사용 가능한 flags이다.
-
TPNOBLOCK
-
TPNOTIME
-
TPRECVONLY
-
TPSIGRSTRT
revent
구별자인 cd에 대한 이벤트가 존재한다면, OnTpsend는 실패하게 되며 데이터는 송신되지 않는다. 이벤트 유형은 revent로 반환된다.
다음은 가능한 이벤트이다.
-
TPEV_DISCONIMM
-
TPEV_SVCERR
-
TPEV_SVCFAIL
이에 대한 자세한 설명은 Tmax Reference Guide를 참고한다.
-
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. 반환할 때 revent가 TREV_SVCFAIL이면, OnGettpurcode()로 서비스에서 tpreturn()를 호출할 때 전달된 urcode값이 된다.
-
관련함수
OnTpconnect(), OnTprecv(), OnTpdiscon(), OnGettperrno()
2.17. OnTpstart
Tmax 시스템에 연결하는 함수로 내부적으로 tpstart를 호출한다. TPSTART_T의 파라미터에 들어갈 멤버를 파라미터로 받아온다.
-
프로토타입
OnTpstart(VARIANT usrname, VARIANT cltname, VARIANT dompwd, VARIANT usrpwd, VARIANT flags)
-
파라미터
파라미터 설명 usrname
클라이언트명을 의미한다.
cltname
시스템 접속 보안에 대한 암호이다.
dompwd
사용자 인증 보안에 대한 계정이다.
usrpwd
사용자 인증 보안에 대한 암호이다.
flags
비요청 메시지 유형과 시스템 접근 방법을 결정한다.
-
반환값
반환값 설명 0 (main)
1 (backup)
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpend(), OnTmaxreadenv(), OnGettperrno()
2.18. OnTptypes
버퍼의 유형 및 하위 유형에 대한 정보를 제공하는 함수로 내부적으로 tptypes를 호출한다.
-
프로토타입
OnTptypes(VARIANT ptr, VARIANT *type, VARIANT *subtype)
-
파라미터
파라미터 설명 ptr
OnTpalloc 또는 OnFballoc으로 할당된 버퍼의 포인터이다.
type
OnTpalloc 또는 OnFballoc으로 할당된 버퍼의 포인터의 버퍼 타입이다.
subtype
OnTpalloc 또는 OnFballoc으로 할당된 버퍼의 포인터의 서브 타입이다.
-
반환값
반환값 설명 버퍼 크기
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpsubtypes(), OnGettperrno()
3. 기타 인터페이스 메소드
3.1. OnTmax_chk_conn
클라이언트가 Tmax 시스템과 연결된 상태인지 체크하는 함수로 내부적으로 tptobackup를 호출한다.
-
프로토타입
OnTmax_chk_conn(VARIANT timeout)
-
파라미터
파라미터 설명 timeout
Blocking Timeout 시간을 설정한다.
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
3.2. OnTmaxreadenv
환경변수를 파일로부터 로드하는 함수로 내부적으로 tmaxreadenv를 호출한다.
-
프로토타입
OnTmaxreadenv(VARIANT file, VARIANT label)
-
파라미터
파라미터 설명 file
접속할 시스템의 환경 정보가 저장된 파일명이다.
label
파일 내에 등록된 환경 정보의 구분자이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다.
-
관련함수
OnTpstart()
3.3. OnTp_sleep
최대 sec시간 동안 sleep하다가 그 안에 데이터가 도착하면 즉시 반환하는 함수로 내부적으로 tp_sleep를 호출한다.
-
프로토타입
OnTp_sleep(VARIANT sec)
-
파라미터
파라미터 설명 sec
기다리고자 하는 시간을 초 단위인 양의 정수값으로 설정한다.
-
반환값
반환값 설명 -1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
0
sec 시간까지 데이터가 도착하지 않는 경우이다.
양의 정수
데이터가 도착한 경우이다.
-
관련함수
OnTp_usleep()
3.4. OnTp_usleep
최대 usec시간 동안 sleep하다가 그 안에 데이터가 도착하면 즉시 반환하는 함수로 내부적으로 tp_usleep를 호출한다.
-
프로토타입
OnTp_sleep(VARIANT usec)
-
파라미터
파라미터 설명 usec
기다리고자 하는 시간을 백만분의 1초 단위인 양의 정수값으로 설정한다.
-
반환값
반환값 설명 -1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
0
usec 시간까지 데이터가 도착하지 않는 경우이다.
양의 정수
데이터가 도착한 경우이다.
-
관련함수
OnTp_usleep()
3.5. OnTpdeq
tpenq()를 이용하여 서비스를 요청한 결과나 또는 tpenq()를 이용할 때 서비스명을 NULL로 하여 저장한 데이터를 읽는 함수로 내부적으로 tpdeq를 호출한다. 단, tpenq()를 이용할 때 flags에 TPNOREPLY를 설정한 서비스는 결과를 받을 수 없다.
-
프로토타입
OnTpdeq(VARIANT qname, VARIANT svc, VARIANT *data, VARIANT *len, VARIANT flags)
-
파라미터
파라미터 설명 qname
데이터를 저장할 RQ명이다.
svc
OnTpenq()에서 사용한 서비스명과 같은 이름이다.
data
서비스 처리 결과를 받을 OnTpalloc 또는 OnFballoc으로 할당된 버퍼이다.
len
수신하는 데이터의 길이를 의미한다.
flags
tpdeq와 같은 flags를 설정할 수 있다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpenq()
3.6. OnTpenq
RQ에 데이터를 저장하는 함수로 내부적으로 tpenq를 호출한다.
-
프로토타입
OnTpenq(VARIANT qname, VARIANT svc, VARIANT data, VARIANT len, VARIANT flags)
-
파라미터
파라미터 설명 qname
데이터를 저장할 RQ명이다.
svc
요청할 서비스명으로, svc명이 NULL이 아니면 즉시 서비스를 요청한다. 만약 svc명이 NULL이면 데이터는 RQ에 저장되고 서비스는 수행되지 않는다.
data
서비스로 요청할 데이터에 대한 포인터이다. NULL인 경우를 제외하면 항상 OnTpalloc 또는 OnFballoc으로 할당된 버퍼이어야 한다.
len
송신하는 데이터의 길이를 의미한다.
flags
tpenq와 같은 flags를 설정할 수 있다.
-
반환값
반환값 설명 qd (queue descriptor)
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpdeq()
3.7. OnTperrordetail
Tmax 시스템을 호출할 때 발생한 오류에 대해 자세한 정보를 얻을 때 사용하는 함수로 내부적으로 tperrordetail를 호출한다.
-
프로토타입
OnTperrordetail(VARIANT i)
-
파라미터
파라미터 설명 i
에러값이다.
-
반환값
반환값 설명 -1
알 수 없는 오류가 발행한 경우이다.
1
애플리케이션 단계에서 오류가 발생하는 경우이다.
2
시스템 단계에서 오류가 발생하는 경우이다.
3.8. OnTpextsvcinfo
OnTpdeq()로 RQ에서 데이터를 읽은 경우 해당 데이터에 대한 상세한 정보를 알고자 할 때 사용하는 함수로 내부적으로 tpextsvcinfo를 호출한다.
-
프로토타입
OnTpextsvcinfo(VARIANT data, VARIANT *svc, VARIANT *type, VARIANT *errcode)
-
파라미터
파라미터 설명 data
OnTpalloc 또는 OnFballoc으로 할당되어 OnTpdeq()를 이용하여 RQ로 부터 읽은 데이터가 저장되어 있는 포인터이다.
svc
해당 서비스명을 받아올 변수이다.
type
해당 데이터의 처리 결과를 나타내며 다음의 값을 갖는다.
-
TPREQ(0)
-
TPFAIL(1)
-
TPSUCCESS(2)
-
TPERR(-1)
errcode
에러 상황인 경우 이 변수에 해당되는 에러 코드값이 저장된다.
-
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
3.9. OnTpextsvcname
OnTpdeq()로 RQ에서 데이터를 읽은 경우 해당 데이터의 서비스명을 알고자 할 때 사용하는 함수로 내부적으로 tpextsvcname를 호출한다.
-
프로토타입
OnTpextsvcname(VARIANT data, VARIANT *svc)
-
파라미터
파라미터 설명 data
OnTpalloc 또는 OnFballoc으로 할당되어 OnTpdeq()를 이용하여 RQ로 부터 읽은 데이터가 저장되어 있는 포인터이다.
svc
해당 서비스명을 받아올 변수이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
3.10. OnTpgetenv
str이라는 이름으로 등록된 환경변수의 값을 반환하는 함수로 내부적으로 tpgetenv를 호출한다.
-
프로토타입
OnTpgetenv(VARIANT str)
-
파라미터
파라미터 설명 str
환경변수에 등록된 이름이다.
-
반환값
반환값 설명 환경변수의 값에 대한 포인터
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다.
-
관련함수
OnTpputenv()
3.11. OnTpputenv
str로 입력된 '이름=값’을 환경변수에 적용하는 함수로 기존의 환경변수가 존재한다면 수정을 하며 존재하지 않는다면 새로 추가한다. 함수 내부적으로 tpputenv를 호출한다.
-
프로토타입
OnTpputenv(VARIANT str)
-
파라미터
파라미터 설명 str
환경변수에 등록할 값이다.
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다.
-
관련함수
OnTpgetenv()
3.12. OnTpqstat
현재 큐에 저장된 데이터의 통계값을 반환하는 함수로 내부적으로 tpqstat를 호출한다.
-
프로토타입
OnTpqstat(VARIANT qname, VARIANT type)
-
파라미터
파라미터 설명 qname
Tmax 환경 파일에 등록된 RQ명이다.
type
flags로 다음 값을 사용할 수 있다.
-
0 : fail/request/reply 큐의 데이터 통계를 낼 때 사용한다.
-
1 : fail 큐의 데이터 통계를 낼 때 사용한다.
-
2 : request 큐의 데이터 통계를 낼 때 사용한다.
-
3 : reply 큐의 데이터 통계를 낼 때 사용한다.
-
-
반환값
반환값 설명 통계값
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpsvcstat()
3.13. OnTpqsvcstat
현재 큐에 저장된 데이터 중 특정 서비스에 대한 통계값을 반환하는 함수로 내부적으로 tpqsvcstat를 호출한다.
-
프로토타입
OnTpqsvcstat(VARIANT qname, VARIANT svc, VARIANT type)
-
파라미터
파라미터 설명 qname
Tmax 환경파일에 등록된 RQ명이다.
svc
통계를 얻고 싶은 서비스명이다. 이 이름이 NULL인 경우 OnTpqstat()와 동일한 결과를 반환한다.
type
flags로 다음 값을 사용할 수 있다.
-
0 : fail/request/reply 큐의 데이터 통계를 낼 때 사용한다.
-
1 : fail 큐의 데이터 통계를 낼 때 사용한다.
-
2 : request 큐의 데이터 통계를 낼 때 사용한다.
-
3 : reply 큐의 데이터 통계를 낼 때 사용한다.
-
-
반환값
반환값 설명 통계값
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpqstat()
3.14. OnTpreissue
OnTpdeq() 등으로 RQ를 통한 서비스 수행 중 네트워크 불안정이나 기타 서버 측의 오류로 서비스 수행을 실패하여 fail 큐에 쌓인 클라이언트의 서비스 요청 데이터를 다시 request 큐에 넣는 함수로 내부적으로 tpreissue를 호출한다.
-
프로토타입
OnTpreissue(VARIANT qname, VARIANT filter, VARIANT flags)
-
파라미터
파라미터 설명 qname
Tmax 환경 파일에 등록된 RQ명이다.
filter
이 파라미터는 현재 지원하지 않으므로 NULL로 설정한다.
flags
이 파라미터는 현재 지원하지 않으므로 0으로 설정한다.
-
반환값
반환값 설명 0 (정상)
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnTpenq(), OnTpdeq()
3.15. OnTpreset
현재 접속된 클라이언트를 즉시 해제하는 함수로 내부적으로 tpreset를 호출한다.
-
프로토타입
OnTpreset()
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
3.16. OnTpset_timeout
서버에 설정되어 있는 서비스 제한시간인 Blocking Timeout 시간을 변경할 때 사용하는 함수로 내부적으로 tpset_timeout을 호출한다.
-
프로토타입
OnTpset_timeout(VARIANT sec)
-
파라미터
파라미터 설명 sec
Blocking Timeout 시간을 설정한다.
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
3.17. OnTpsubqname
서브큐 번호에 해당하는 큐의 이름을 반환하는 함수로 내부적으로 tpsubqname를 호출한다.
-
프로토타입
OnTpsubqname(VARIANT type)
-
파라미터
파라미터 설명 type
다음 중에 하나를 서브큐 번호로 지정한다.
-
0 : RQ_ANY (fail/request/reply 큐)
-
1 : RQ_FAIL(fail 큐)
-
2 : RQ_REQ(request 큐)
-
3 : RQ_RPLY(reply 큐)
-
-
반환값
반환값 설명 서브큐 이름
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
4. FDL 인터페이스 메소드
4.1. OnFballoc
필드 버퍼의 크기를 계산한 후 메모리를 할당하는 함수로 내부적으로 fballoc를 호출한다.
-
프로토타입
OnFballoc(VARIANT count, VARIANT len)
-
파라미터
파라미터 설명 count
데이터를 저장할 필드의 개수이다.
len
데이터의 전체 크기이다. (단위 : Byte)
-
반환값
반환값 설명 할당한 메모리의 포인터
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbcalcsize(), OnTpalloc()
4.2. OnFbcalcsize
OnTpalloc()으로 필드 버퍼를 메모리에 할당받을 때 적정한 메모리를 할당받기 위하여 사전에 필드 버퍼의 크기를 계산하는 함수로 내부적으로 fbcalcsize를 호출한다.
-
프로토타입
OnFbcalcsize(VARIANT count, VARIANT datalen)
-
파라미터
파라미터 설명 count
데이터를 저장할 필드의 개수이다.
datalen
필드 버퍼의 전체 데이터 크기를 Byte 단위로 지정한다.
-
반환값
주어진 count 와 datalen에 근거하여 필드 버퍼의 크기를 Byte 단위로 반환한다.
-
관련함수
OnFballoc(), OnTpalloc()
4.3. OnFbdelall
필드 버퍼에서 지정한 필드키의 전체 데이터를 삭제하는 함수로 내부적으로 fbdelall를 호출한다.
-
프로토타입
OnFbdelall(VARIANT fbuf, VARIANT fldkey)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
-
반환값
반환값 설명 삭제한 필드 개수
함수 호출에 성공한 경우이다.
-1
지정한 필드키를 필드 버퍼에서 찾지 못한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
4.4. OnFbdelete
필드 버퍼에 지정한 필드키의 필드 순번에 해당되는 데이터를 삭제하는 함수로 내부적으로 fbdelete를 호출한다.
-
프로토타입
OnFbdelete(VARIANT fbuf, VARIANT fldkey, VARIANT nth)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbupdate(), OnFbinsert()
4.5. OnFbfldcount
필드 버퍼 내에 있는 모든 필드의 수를 반환하는 함수로 내부적으로 fbfldcount를 호출한다.
-
프로토타입
OnFbfldcount(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
-
반환값
지정한 필드 버퍼에서 현재 저장되어 있는 필드의 수를 반환하고, 필드 버퍼에 저장되어 있는 필드가 없는 경우에는 0을 반환한다.
4.6. OnFbfree
필드 버퍼의 메모리를 해제하는 함수로 내부적으로 fbfree를 호출한다.
-
프로토타입
OnFbfree(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
필드 버퍼를 해제하는데 실패한 경우이다. (OnGetfberrno()를 호출하여 에러값을 가져올 수 있다.
-
관련함수
OnFballoc(), OnTpalloc(), OnTpfree()
4.7. OnFbget
필드 버퍼에서 필드키에 해당되는 필드 데이터를 반환하는 함수로 내부적으로 fbget을 호출한다.
-
프로토타입
OnFbget(VARIANT fbuf, VARIANT fldkey, VARIANT *loc, VARIANT *fldlen)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
loc
필드 데이터를 받아올 버퍼로 반드시 OnTpalloc으로 할당된 버퍼이어야 한다.
fldlen
받아 온 필드 데이터의 길이이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbput(), OnFbgett()
4.8. OnFbget_fbsize
필드 버퍼의 크기를 반환하는 함수로 내부적으로 fbfree를 호출한다.
-
프로토타입
OnFbget_fbsize(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
-
반환값
메모리에 할당된 필드 버퍼의 크기를 반환한다.
-
관련함수
OnFballoc(), OnTpalloc()
4.9. OnFbget_fldkey
지정한 필드명과 일치하는 필드키를 반환하는 함수로 내부적으로 fbget_fldkey를 호출한다.
-
프로토타입
OnFbget_fldkey(VARIANT name)
-
파라미터
파라미터 설명 name
알고 싶은 필드키의 필드명이다.
-
반환값
반환값 설명 필드키
함수 호출에 성공한 경우이다.
0
지정한 필드명이 필드 테이블에 존재하지 않는 경우이다.
-
관련함수
OnFbget_fldname(), OnFbget_fldtype()
4.10. OnFbget_fldname
지정한 필드키와 일치하는 필드명을 반환하는 함수로 내부적으로 fbget_fldkey를 호출한다.
-
프로토타입
OnFbget_fldname(VARIANT fldkey)
-
파라미터
파라미터 설명 fldkey
알고 싶은 필드명의 필드키이다.
-
반환값
반환값 설명 지정한 필드키와 일치하는 필드명
함수 호출에 성공한 경우이다.
NULL
지정한 필드키에 대한 필드명이 필드 테이블에 존재하지 않을 경우이다.
-
관련함수
OnFbget_fldkey(), OnFbget_fldtype()
4.11. OnFbget_fldtype
지정한 필드키의 필드 타입을 정수로 반환하는 함수로 내부적으로 fbget_fldtype를 호출한다.
-
프로토타입
OnFbget_fldtype(VARIANT fldkey)
-
파라미터
파라미터 설명 fldkey
필드키이다.
-
반환값
반환값 필드 타입 1
character
2
short integer
3
integer
4
long integer
5
float
6
double
7
string
8
character array(CARRAY)
-
관련함수
OnFbget_fldkey(), OnFbget_fldname()
4.12. OnFbget_strfldtype
지정한 필드키의 필드 타입을 문자열로 반환하는 함수로 내부적으로 fbget_strfldtype를 호출한다.
-
프로토타입
OnFbget_strfdltype(VARIANT fldkey)
-
파라미터
파라미터 설명 fldkey
필드키이다.
-
반환값
반환값 설명 빈 문자열
파라미터로 받은 필드키에 해당하는 필드 타입이 없거나 필드키가 잘못 지정된 경우이다.
문자열
파라미터로 받은 필드키에 해당하는 필드 타입이 존재할 경우 해당 필드 타입을 문자열로 반환한다.
-
관련함수
OnFbget_fldtype()
4.13. OnFbget_unused
메모리에 할당된 필드 버퍼 중 아직 사용되지 않은 필드 버퍼의 크기를 계산하는 함수로 내부적으로 fbget_unused를 호출한다.
-
프로토타입
OnFbget_unused(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
-
반환값
메모리에 할당된 필드 버퍼 중 아직 사용되지 않은 메모리의 크기를 Byte 단위로 반환한다.
-
관련함수
OnFbget_used()
4.14. OnFbget_used
메모리에 할당된 필드 버퍼 중 아직 사용 중인 필드 버퍼의 크기를 계산하는 함수로 내부적으로 fbget_used를 호출한다.
-
프로토타입
OnFbget_used(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
-
반환값
메모리에 할당된 필드 버퍼 중 아직 사용 중인 메모리의 크기를 Byte 단위로 반환한다.
-
관련함수
OnFbget_unused()
4.15. OnFbgetc
필드 버퍼에 저장되어 있는 필드 데이터를 지정한 타입으로 변환하여 순차적으로 반환하는 함수로 내부적으로 fbgetc를 호출한다.
-
프로토타입
OnFbgetc(VARIANT fbuf, VARIANT fldkey, VARIANT *loc, VARIANT *len, VARIANT *pos, VARIANT totype)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
loc
필드 데이터를 받아 올 버퍼로 반드시 OnTpalloc으로 할당된 버퍼이어야 한다.
fldlen
받아 온 필드 데이터의 길이이다.
pos
읽어 올 다음 데이터의 위치이다.
totype
받아 온 필드 데이터를 변환하고자 하는 타입이다. 다음의 타입을 사용할 수 있다.
-
FB_CARRAY(8)
-
FB_SHORT(2)
-
FB_DOUBLE(6)
-
FB_LONG(4)
-
FB_STRING(7)
-
FB_CHAR(1)
-
FB_FLOAT(5)
-
FB_INT(3)
-
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
지정한 필드키를 필드 버퍼에서 찾지 못한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbget(), OnFbgetf()
4.16. OnFbgetf
필드 버퍼에 저장되어 있는 필드 데이터를 순차적으로 반환하는 함수로 내부적으로 fbgetf를 호출한다.
-
프로토타입
OnFbgetf(VARIANT fbuf, VARIANT fldkey, VARIANT *loc, VARIANT *fldlen, VARIANT *pos)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
loc
필드 데이터를 받아올 버퍼로 반드시 OnTpalloc으로 할당된 버퍼이어야 한다.
fldlen
받아 온 필드 데이터의 길이이다.
pos
읽어 올 다음 데이터의 위치이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
지정한 필드키를 필드 버퍼에서 찾지 못한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbget(), OnFbgetc()
4.17. OnFbgetnth
지정한 필드키에 저장되어 있는 필드 데이터 중 지정한 데이터가 저장되어 있는 필드 개수을 반환하는 함수로 내부적으로 fbgetnth를 호출한다.
-
프로토타입
OnFbgetnth(VARIANT fbuf, VARIANT fldkey, VARIANT value, VARIANT len)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
value
비교할 데이터이다.
len
비교할 데이터의 길이이다.
-
반환값
반환값 설명 필드의 순번
함수 호출에 성공한 경우이다.
-1
지정한 필드키의 필드 순번이 필드 버퍼에 존재하지 않는 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
4.18. OnFbgetntht
지정한 필드키에 저장되어 있는 필드 데이터 중 지정한 데이터가 저장되어 있는 필드 순번을 반환하는 함수로 내부적으로 fbgetntht를 호출한다.
-
프로토타입
OnFbgetntht(VARIANT fbuf, VARIANT fldkey, VARIANT value, VARIANT len, VARIANT fromtype)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
value
비교할 데이터이다.
len
비교할 데이터의 길이이다.
fromtype
필드 타입을 의미한다. 사용자가 fromtype에서 지정한 데이터 타입과 fldkey에서 지정한 필드키의 필드 타입이 같지 않은 경우 value의 데이터 타입을 필드 타입으로 변환한 후 value, fldlen, 필드 타입이 일치하는 필드 순번을 찾아서 반환한다.
다음의 필드 타입을 사용할 수 있다.
-
FB_CHAR(1)
-
FB_SHORT(2)
-
FB_INT(3)
-
FB_LONG(4)
-
FB_FLOAT(5)
-
FB_DOUBLE(6)
-
FB_STRING(7)
-
FB_CARRAY(8)
-
-
반환값
반환값 설명 필드의 순번
함수 호출에 성공한 경우이다.
-1
지정한 필드키의 필드 순번이 필드 버퍼에 존재하지 않는 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbgetntht()
4.19. OnFbgetval
필드 버퍼에 지정한 필드키의 필드 순번에 해당하는 필드 데이터를 반환하는 함수로 내부적으로 fbgetval을 호출한다.
-
프로토타입
OnFbgetval(VARIANT fbuf, VARIANT fldkey, VARIANT nth, VARIANT *len)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
len
읽어 올 데이터의 길이이다.
-
반환값
반환값 설명 문자열
함수 호출에 성공한 경우이다.
NULL
지정한 필드키의 필드 순번이 필드 버퍼에 존재하지 않는 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbgetvalt(), OnFbgetvals(), OnFbgetvali()
4.20. OnFbgetvali
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 정수로 변환하여 반환하는 함수로 내부적으로 fbgetvali를 호출한다.
-
프로토타입
OnFbgetvali(VARIANT fbuf, VARIANT fldkey, VARIANT nth)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
-
반환값
반환값 설명 정수
함수 호출에 성공한 경우이다.
-1
필드 버퍼에서 지정한 필드키를 찾지 못하였을 경우 또는 함수 수행 중 다른 에러가 발생한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbgetvalt(), OnFbgetvals(), OnFbgetval()
4.21. OnFbgetvals
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 문자열로 변환하여 반환하는 함수로 내부적으로 fbgetvals를 호출한다.
-
프로토타입
OnFbgetvals(VARIANT fbuf, VARIANT fldkey, VARIANT nth)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
-
반환값
반환값 설명 문자열
함수 호출에 성공한 경우이다.
NULL
필드 버퍼에서 지정한 필드키를 찾지 못하였을 경우 또는 함수 수행 중 다른 에러가 발생한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbgetvalt(), OnFbgetval(), OnFbgetvali()
4.22. OnFbgetvalt
지정한 필드키의 필드 순번에 해당하는 필드 데이터를 지정한 타입으로 변환하여 반환하는 함수로 내부적으로 fbgetvalt를 호출한다.
-
프로토타입
OnFbgetvalt(VARIANT fbuf, VARIANT fldkey, VARIANT nth, VARIANT *len, VARIANT totype)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
len
읽어 올 데이터의 길이이다.
type
읽어 올 필드 데이터를 변환하고자 하는 타입이다.
다음의 필드 타입을 사용할 수 있다.
-
FB_CHAR(1)
-
FB_SHORT(2)
-
FB_INT(3)
-
FB_LONG(4)
-
FB_FLOAT(5)
-
FB_DOUBLE(6)
-
FB_STRING(7)
-
FB_CARRAY(8)
-
-
반환값
반환값 설명 문자열
함수 호출에 성공한 경우이다.
NULL
지정한 필드키의 필드 순번이 필드 버퍼에 존재하지 않는 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbgetval(), OnFbgetvals(), OnFbgetvali()
4.23. OnFbinit
필드 버퍼를 초기화하는 함수로 내부적으로 fbinit를 호출한다.
-
프로토타입
OnFbinit(VARIANT fbuf, VARIANT len)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
len
초기화하려는 버퍼의 크기이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
필드 버퍼를 초기화하는데 실패한 경우이다. OnGetfberrno()를 호출하여 에러값을 가져올 수 있다.
4.24. OnFbinsert
필드 버퍼에 지정한 필드키의 필드 순번에 데이터를 저장하는 함수로 내부적으로 fbinsert를 호출한다.
-
프로토타입
OnFbinsert(VARIANT fbuf, VARIANT fldkey, VARIANT nth, VARIANT value, VARIANT fldlen)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
value
추가할 데이터이다.
fldlen
추가할 데이터의 길이이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbdelete(), OnFbupdate()
4.25. OnFbisfbuf
지정한 필드 버퍼가 유효한지(OnFballoc 또는 OnTpalloc으로 버퍼를 할당받은 변수인지) 확인하는 함수로 내부적으로 fbisfbuf를 호출한다.
-
프로토타입
OnFbisfbuf(VARIANT fbuf)
-
파라미터
파라미터 설명 fbuf
검사하려는 변수를 의미한다.
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
1
지정한 필드 버퍼가 유효한 경우이다.
-
관련함수
OnFballoc(), OnTpalloc()
4.26. OnFbispres
필드 버퍼에 지정한 필드키의 필드 순번에 필드 데이터가 존재하는지 확인하는 함수로 내부적으로 fbispres를 호출한다.
-
프로토타입
OnFbispres(VARIANT fbuf, VARIANT fldkey, VARIANT nth)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
1
필드 버퍼에서 지정한 필드키의 필드 순번에 필드 데이터가 존재하는 경우이다.
4.27. OnFbkeynm_unload
메모리로 로딩된 FDL 파일을 새로 로딩하는 경우 이 함수를 호출할 수 있다. 이 함수를 호출하면 기존에 메모리로 로딩된 데이터는 삭제되고 환경변수인 FDLFILE에 설정된 파일이 메모리에 로딩된다. 함수 내부적으로 fbkeynm_unload를 호출한다.
-
프로토타입
OnFbkeynm_unload()
-
관련함수
OnFbnmkey_unload
4.28. OnFbkeyoccur
필드 버퍼에서 지정한 필드키의 필드 순번을 반환하는 함수로 내부적으로 fbkeyoccur를 호출한다.
-
프로토타입
OnFbkeyoccur(VARIANT fbuf, VARIANT fldkey)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
-
반환값
반환값 설명 필드의 개수
함수 호출에 성공한 경우이다.
0
필드 버퍼에 지정한 필드키에 저장된 필드 데이터가 없을 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-1
함수 호출에 실패할 경우이다.
4.29. OnFbmake_fldkey
새로운 필드키를 동적으로 생성하는 함수로 내부적으로 fbmake_fldkey를 호출한다.
-
프로토타입
OnFbmake_fldkey(VARIANT type, VARIANT no)
-
파라미터
파라미터 설명 type
생성하고자 하는 필드의 필드 타입으로, 다음의 필드 타입을 사용할 수 있다.
-
FB_CHAR(1)
-
FB_SHORT(2)
-
FB_INT(3)
-
FB_LONG(4)
-
FB_FLOAT(5)
-
FB_DOUBLE(6)
-
FB_STRING(7)
-
FB_CARRAY(8)
no
생성하고자 하는 필드의 번호를 의미한다.
-
-
반환값
반환값 설명 필드키
지정된 type과 no를 조합하여 새로운 필드키를 생성할 경우이다.
문자열
파라미터로 받은 필드키에 해당하는 필드 타입이 존재할 경우이다.
4.30. OnFbnmkey_unload
메모리로 로딩된 FDL 파일을 새로 로딩하는 경우 함수를 호출할 수 있다. 이 함수를 호출하면 기존에 메모리로 로딩된 데이터는 삭제되고 환경변수인 FDLFILE에 설정된 파일이 메모리에 로딩된다. 함수 내부적으로 fbnmkey_unload를 호출한다.
-
프로토타입
OnFbnmkey_unload()
-
관련함수
OnFbkeynm_unload
4.31. OnFbput
필드 버퍼에 새로운 필드를 추가하는 함수로 내부적으로 fbput를 호출한다.
-
프로토타입
OnFbput(VARIANT fbuf, VARIANT fldkey, VARIANT value, VARIANT fldlen)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
value
추가할 데이터를 의미한다.
fldlen
추가할 데이터의 길이이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbget(), OnFbputt()
4.32. OnFbputt
필드 버퍼에 데이터를 지정한 타입으로 변환한 후 새로운 필드를 추가하여 저장하는 함수로 내부적으로 fbputt를 호출한다.
-
프로토타입
OnFbputt(VARIANT fbuf, VARIANT fldkey, VARIANT value, VARIANT len, VARIANT type)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
value
추가할 데이터이다.
len
추가할 데이터의 길이이다.
type
사용자가 지정한 데이터형으로 데이터가 필드에 저장되기 전에 여기에서 지정한 type에서 필드키의 타입으로 변환된다.
type에 지정할 수 있는 값은 다음과 같다.
-
FB_CHAR(1)
-
FB_SHORT(2)
-
FB_INT(3)
-
FB_LONG(4)
-
FB_FLOAT(5)
-
FB_DOUBLE(6)
-
FB_STRING(7)
-
FB_CARRAY(8)
-
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
필드 버퍼에 필드를 추가하는 데 실패할 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbput()
4.33. OnFbrealloc
필드 버퍼를 메모리에 다시 할당하는 함수로 내부적으로 fbget_used를 호출한다.
-
프로토타입
OnFbrealloc(VARIANT fbuf, VARIANT ncount, VARIANT nlen)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
ncount
데이터를 저장할 필드의 개수이다.
nlen
데이터의 전체 크기이다. (단위: Byte)
-
반환값
반환값 설명 할당된 메모리 포인터
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFballoc(), OnTpalloc()
4.34. OnFbstrerror
필드 버퍼를 조작할 때 에러 내용을 문자열로 반환하는 함수로 내부적으로 fbstrerror를 호출한다.
-
프로토타입
OnFbstrerror(VARIANT err_no)
-
파라미터
파라미터 설명 err_no
에러값을 의미한다.
-
반환값
반환값 설명 문자열
함수 호출에 성공한 경우이다.
NULL
함수 호출에 실패한 경우이다.
-
관련함수
OnFbcalcsize(), OnTpalloc()
4.35. OnFbtypecvt
지정한 필드 데이터를 지정한 타입으로 데이터형을 변환하여 반환하는 함수로 내부적으로 fbtypecvt를 호출한다.
-
프로토타입
OnFbtypecvt(VARIANT *tolen, VARIANT totype, VARIANT fromval, VARIANT fromtype, VARIANT fromlen)
-
파라미터
파라미터 설명 tolen
변환된 데이터의 길이이다.
totype
변환하려는 데이터의 타입이다.
fromval
변환하려는 원 데이터이다.
fromtype
변환하려는 원 데이터의 타입이다.
fromlen
변환하려는 원 데이터의 길이이다.
-
반환값
반환값 설명 변환된 데이터 포인터
함수 호출에 성공한 경우이다.
NULL
데이터를 변환하는 데 실패할 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
4.36. OnFbupdate
필드 버퍼에 지정한 필드키의 필드 순번에 해당되는 데이터를 변경하는 함수로 내부적으로 fbupdate를 호출한다.
-
프로토타입
OnFbupdate(VARIANT fbuf, VARIANT fldkey, VARIANT nth, VARIANT value, VARIANT fldlen)
-
파라미터
파라미터 설명 fbuf
OnTpalloc 또는 OnFballoc으로 할당된 버퍼 포인터이다.
fldkey
필드키이다.
nth
필드 순번이다.
value
변경할 데이터이다.
fldlen
변경할 데이터의 길이이다.
-
반환값
반환값 설명 1
함수 호출에 성공한 경우이다.
-1
함수 호출에 실패한 경우이다. OnGettperrno()를 호출해서 에러값을 가져온다.
-
관련함수
OnFbdelete(), OnFbinsert()
5. Tx 인터페이스 메소드
5.1. OnTx_begin
전역 트랜잭션을 시작하는 함수로 내부적으로 tx_begin를 호출한다.
-
프로토타입
OnTx_begin()
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
음수
함수 호출에 실패한 경우이다.
-
관련함수
OnTx_commit(), OnTx_rollback(), OnTx_set_transaction_timeout()
5.2. OnTx_commit
전역 트랜잭션을 Commit하는 함수로 내부적으로 tx_commit를 호출한다.
-
프로토타입
OnTx_commit()
-
반환값
반환값 설명 0
함수 호출에 성공한 경우이다.
음수
함수 호출에 실패한 경우이다.
-
관련함수
OnTx_begin(), OnTx_rollback(), OnTx_set_transaction_timeout()
6. 예제 프로그램
계정번호를 키값으로 지사번호, 전화번호, 주소를 조회, 수정, 삭제 및 입력하는 프로그램이며 사용되는 버퍼는 필드키 버퍼를 사용하였다.
6.1. 프로그램 구성
프로그램은 다음과 같이 구성된다.
프로그램 파일 | 설명 |
---|---|
TmaxTestTx.asp |
메인화면이다. |
insert.asp |
[INSERT] 버튼이 선택되면 Tmax로 요청한 후 결과를 받아서 TmaxTestTx.asp로 결과값을 전달한다. |
update.asp |
[UPDATE] 버튼이 선택되면 Tmax로 요청한 후 결과를 받아서 TmaxTestTx.asp로 결과값을 전달한다. |
delete.asp |
[DELETE] 버튼이 선택되면 Tmax로 요청한 후 결과를 받아서 TmaxTestTx.asp로 결과값을 전달한다. |
select.asp |
[SELECT] 버튼이 선택되면 Tmax로 요청한 후 결과를 받아서 TmaxTestTx.asp로 결과값을 전달한다. |
6.2. 프로그램 특징
다음은 프로그램의 특징이다.
-
클라이언트 프로그램
기능 설명 Tmax Library 연결
Tmaxcom.Atmi, Tmaxcom.Etc, Tmaxcom.Fdl, Tmaxcom.Tx를 항목에 추가한다.
버퍼 유형
FIELD KEY 버퍼, 필드키 파일을 fdlc 유틸리티로 컴파일하여 'fdl' 파일의 생성이 필요하다.
통신 유형
OnTpcall()을 이용해서 동기 통신을 한다.
트랜잭션 여부
조회, 수정, 삭제, 입력을 수행할 경우 모두 트랜잭션으로 처리한다.
Tmax 연결
각각의 서비스를 수행할 때마다 접속 후, 서비스를 완료할 경우 접속 해제한다.
-
서버 프로그램
기능 설명 서비스
SELECT, UPDATE, DELETE, INSERT를 작성한다.
데이터베이스 지정
Oracle 데이터베이스를 사용한다. 시스템 구성 파일의 SVRGROUP에 데이터베이스 정보를 지정한다( XA 방식).
6.3. 클라이언트 프로그램
메인화면
프로그램을 실행하기 전에 윈도우의 실행 창에서 <regsvr32 tmaxcomcli.dll>을 실행한다.
프로그램을 실행하면 다음과 같은 화면이 나타난다. 버튼은 [INSERT], [UPDATE], [DELETE], [SELECT]로 구성되어 원하는 버튼을 클릭할 수 있다.
입출력 관리
다음은 계정번호를 통한 입출력관리 예제이다.
<Tmaxtest.asp>
<HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <% Dim retStr Dim retAccount Dim retBranch Dim retPhone Dim retAddr retStr = request("retStr") retAccount = request("retAccount") retBranch = request("retBranch") retPhone = request("retPhone") retAddr = request("retAddr") %> <script language="javascript"> function insertPage(){ var accountValue = document.form1.taccount_id.value; var branchValue = document.form1.tbranch_id.value; var phoneValue = document.form1.tphone.value; var addrValue = document.form1.taddr.value; location.href="insert.asp?taccount_id="+accountValue+"&tbranch_id= "+branchValue+"&tphone="+phoneValue+"&taddr="+addrValue; } function updatePage(){ var accountValue = document.form1.taccount_id.value; var branchValue = document.form1.tbranch_id.value; var phoneValue = document.form1.tphone.value; var addrValue = document.form1.taddr.value; location.href="update.asp?taccount_id="+accountValue+"&tbranch_id= "+branchValue+"&tphone="+phoneValue+"&taddr="+addrValue; } function deletePage(){ var accountValue = document.form1.taccount_id.value; location.href="delete.asp?taccount_id="+accountValue; } function selectPage(){ var accountValue = document.form1.taccount_id.value; location.href="select.asp?taccount_id="+accountValue; } </script> <BODY> <form action="" name="form1" method="get"> <TABLE> <TR> <TD colspan=2>계정번호</TD> <TD colspan=2><INPUT TYPE="text" NAME="taccount_id"></TD> </TR> <TR> <TD colspan=2>지사번호</TD> <TD colspan=2><INPUT TYPE="text" NAME="tbranch_id" value="<%if retBranch<> "" then response.write retBranch else response.write "" end if %>"> </TD> </TR> <TR> <TD colspan=2>전화번호</TD> <TD colspan=2><INPUT TYPE="text" NAME="tphone" value="<%if retPhone<> "" then response.write retPhone else response.write "" end if %>"> </TD> </TR> <TR> <TD colspan=2>주소</TD> <TD colspan=2><INPUT TYPE="text" NAME="taddr" value="<%if retAddr<> "" then response.write retAddr else response.write "" end if %>"></TD> </TR> <TR> <TD colspan=2>결과값</TD> <TD colspan=2><INPUT TYPE="text" NAME="trval" value="<%if retStr<> "" then response.write retStr else response.write "" end if %>"></TD> </TR> <TR> <TD> <INPUT TYPE="button" NAME="insert" value="INSERT" onclick="insertPage();"> </TD> <TD> <INPUT TYPE="button" NAME="update" value="UPDATE" onclick="updatePage();"> </TD> <TD > <INPUT TYPE="button" NAME="delete" value="DELETE" onclick="deletePage();"> </TD> <TD> <INPUT TYPE="button" NAME="select" value="SELECT" onclick="selectPage();"> </TD> </TR> </TABLE></form> </BODY> </HTML>
INSERT 버튼 실행 스크립트
다음은 [INSERT] 버튼의 예제이다.
<insert.asp>
<% Dim file Dim label Dim tmp 'Tmax와 통신하기 위한 변수 Dim fbuf 'INSERT 서비스에서 fbuf에 담아온 값을 읽기 위한 변수 Dim retStr 'TmaxTestTx.asp에서 받아 온 값을 담을 변수 Dim taccount_id Dim tranch_id Dim tphone Dim taddr Dim rlen Dim rVal Dim errno 'TmaxTestTx.asp에서 받아 온 값을 설정한다. taccount_id = request("taccount_id") tbranch_id = request("tbranch_id") tphone = request("tphone") taddr = request("taddr") '인터페이스의 Object를 생성한다. Set objAtmi = Server.CreateObject("Tmaxcom.Atmi") Set objFdl = Server.CreateObject("Tmaxcom.Fdl") Set objEtc = Server.CreateObject("Tmaxcom.Etc") Set objTx = Server.CreateObject("Tmaxcom.Tx") ... file = "C:\\Inetpub\\wwwroot\\tmax.env" label = "TMAXC1" 'Tmax와 연결하기 위해 OnTmaxreadenv로 환경변수를 읽어 온다. rVal = objEtc.OnTmaxreadenv (file, label) if rVal < 0 then error processing ... end if 'Tmax와 OnTpstart로 연결한다. tmp = "" rVal = objAtmi.OnTpstart (tmp, tmp, tmp, tmp, CINT(0)) if rVal < 0 then error processing ... end if '버퍼를 OnTpalloc으로 할당한다. '보낼 버퍼/받을 버퍼 fbuf = objAtmi.OnTpalloc ("FIELD", "", CINT(0)) '필드 데이터를 가져올 버퍼 retStr = objAtmi.OnTpalloc ("STRING", "", CINT(0)) '보낼 버퍼에 필드 데이터를 넣는다. 'INSERT_ID ((FLDKEY)201327592) /* number: 1000 type: int */ 'BRANCH_ID ((FLDKEY)201327593) /* number: 1001 type: int */ 'PHONE ((FLDKEY)469763050) /* number: 1002 type: string */ 'ADDRESS ((FLDKEY)469763051) /* number: 1003 type: string */ rVal = objFdl.OnFbput (fbuf, "201327592", taccount_id, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput (fbuf, "201327593", tbranch_id, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput (fbuf, "469763050", tphone, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput (fbuf, "469763051", taddr, CINT("0")) if rVal < 0 then error processing ... end if '트랜잭션을 시작한다. rVal = objTx.OnTx_begin() if rVal < 0 then error processing ... end if 'Tmax로 INSERT 서비스를 요청한다. rVal = objAtmi.OnTpcall ("INSERT", fbuf, CINT(0), fbuf, rlen, CINT("0")) if rVal < 0 then error processing ... rVal = objTx.OnTx_rollback() if rVal < 0 then error processing ... end if 'Tmax와의 연결을 해제한다. ... else rVal = objTx.OnTx_commit() if rVal < 0 then error processing ... end if end if 'OnTpcall의 결과로 받아 온 fbuf에서 RESULT 필드의 내용을 가져온다. 'RESULT ((FLDKEY)469764048) /* number: 2000 type: string */ rVal = objFdl.OnFbget (fbuf, "469764048", retStr, rlen) if rVal < 0 then error processing ... end if 'RESULT 필드의 내용이 담긴 버퍼에서 실제 내용을 가져온다. rVal = objAtmi.OnTpget (retStr, tmp) if rVal < 0 then error processing ... end if '버퍼를 해제한다. objAtmi.OnTpfree(fbuf) objAtmi.OnTpfree(retStr) 'Tmax와의 연결을 해제한다. rVal = objAtmi.OnTpend() if rVal < 0 then error processing ... end if 'Object를 해제한다. Set objAtmi = nothing Set objFdl = nothing Set objEtc = nothing Set objTx = nothing response.redirect "TmaxTestTx.asp?retStr="&tmp %>
UPDATE 버튼 실행 스크립트
다음은 [UPDATE] 버튼의 예제이다.
<update.asp>
<% Dim file Dim label Dim tmp 'Tmax와 통신하기 위한 변수 Dim fbuf 'UPDATE 서비스에서 fbuf에 담아온 값을 읽기 위한 변수 Dim retStr 'TmaxTestTx.asp에서 받아 온 값을 담을 변수 Dim taccount_id Dim tranch_id Dim tphone Dim taddr Dim rlen Dim rVal Dim errno 'TmaxTestTx.asp에서 받아 온 값을 설정한다. taccount_id = request("taccount_id") tbranch_id = request("tbranch_id") tphone = request("tphone") taddr = request("taddr") '인터페이스의 Object를 생성한다. Set objAtmi = Server.CreateObject("Tmaxcom.Atmi") Set objFdl = Server.CreateObject("Tmaxcom.Fdl") Set objEtc = Server.CreateObject("Tmaxcom.Etc") Set objTx = Server.CreateObject("Tmaxcom.Tx") %> <script language="javascript"> alert("taccount_id[<%=taccount_id%>] tbranch_id[<%=tbranch_id%>] thpone[<%=tphone%>] taddr[<%=taddr%>]"); </script> <% file = "C:\\Inetpub\\wwwroot\\tmax.env" label = "TMAXC1" 'Tmax와 연결하기 위해 OnTmaxreadenv로 환경변수를 읽어 온다. rVal = objEtc.OnTmaxreadenv (file, label) if rVal < 0 then error processing ... end if 'Tmax와 OnTpstart로 연결한다. tmp = "" rVal = objAtmi.OnTpstart (tmp, tmp, tmp, tmp, CINT(0)) if rVal < 0 then error processing ... end if '버퍼를 OnTpalloc으로 할당한다. '보낼 버퍼/받을 버퍼 fbuf = objAtmi.OnTpalloc ("FIELD", "", CINT(0)) '필드 데이터를 가져올 버퍼 retStr = objAtmi.OnTpalloc ("STRING", "", CINT(0)) '보낼 버퍼에 필드 데이터를 넣는다. 'UPDATE_ID ((FLDKEY)201327596) /* number: 1004 type: int */ 'BRANCH_ID ((FLDKEY)201327593) /* number: 1001 type: int */ 'PHONE ((FLDKEY)469763050) /* number: 1002 type: string */ 'ADDRESS ((FLDKEY)469763051) /* number: 1003 type: string */ rVal = objFdl.OnFbput(fbuf, "201327596", taccount_id, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput(fbuf, "201327593", tbranch_id, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput(fbuf, "469763050", tphone, CINT("0")) if rVal < 0 then error processing ... end if rVal = objFdl.OnFbput(fbuf, "469763051", taddr, CINT("0")) if rVal < 0 then error processing ... end if '트랜잭션을 시작한다. rVal = objTx.OnTx_begin() if rVal < 0 then error processing ... end if 'Tmax로 UPDATE 서비스를 요청한다. rVal = objAtmi.OnTpcall("UPDATE", fbuf, CINT(0), fbuf, rlen, CINT("0")) if rVal < 0 then error processing ... if rVal < 0 then errno = objAtmi.OnGettperrno() response.write("OnTx_rollback fail["&rVal&"] ["&errno&"]") end if ... else rVal = objTx.OnTx_commit() if rVal < 0 then error processing ... end if end if 'OnTpcall의 결과로 받아 온 fbuf에서 RESULT 필드의 내용을 가져온다. 'RESULT ((FLDKEY)469764048) /* number: 2000 type: string */ rVal = objFdl.OnFbget(fbuf, "469764048", retStr, rlen) if rVal < 0 then error processing ... end if 'RESULT 필드의 내용이 담긴 버퍼에서 실제 내용을 가져온다. rVal = objAtmi.OnTpget (retStr, tmp) if rVal < 0 then error processing ... end if '버퍼를 해제한다. objAtmi.OnTpfree(fbuf) objAtmi.OnTpfree(retStr) 'Tmax와의 연결을 해제한다. rVal = objAtmi.OnTpend() if rVal < 0 then error processing ... end if 'Object를 해제한다. Set objAtmi = nothing Set objFdl = nothing Set objEtc = nothing Set objTx = nothing response.redirect "TmaxTestTx.asp?retStr="&tmp %>
DELETE 버튼 실행 스크립트
다음은 [DELETE] 버튼의 예제이다.
<delete.asp>
<% Dim file Dim label Dim tmp 'Tmax와 통신하기 위한 변수 Dim fbuf 'DELETE 서비스에서 fbuf에 담아온 값을 읽기 위한 변수 Dim retStr 'TmaxTestTx.asp에서 받아 온 값을 담을 변수 Dim taccount_id Dim rlen Dim rVal Dim errno 'TmaxTestTx.asp에서 받아 온 값을 설정한다. taccount_id = request("taccount_id") '인터페이스의 Object를 생성한다. Set objAtmi = Server.CreateObject("Tmaxcom.Atmi") Set objFdl = Server.CreateObject("Tmaxcom.Fdl") Set objEtc = Server.CreateObject("Tmaxcom.Etc") Set objTx = Server.CreateObject("Tmaxcom.Tx") %> <script language="javascript"> alert("taccount_id[<%=taccount_id%>]"); </script> <% file = "C:\\Inetpub\\wwwroot\\tmax.env" label = "TMAXC1" 'Tmax와 연결하기 위해 OnTmaxreadenv로 환경변수를 읽어 온다. rVal = objEtc.OnTmaxreadenv (file, label) if rVal < 0 then error processing ... end if 'Tmax와 OnTpstart로 연결한다. tmp = "" rVal = objAtmi.OnTpstart (tmp, tmp, tmp, tmp, CINT(0)) if rVal < 0 then error processing ... end if '버퍼를 OnTpalloc으로 할당한다. '보낼 버퍼/받을 버퍼 fbuf = objAtmi.OnTpalloc ("FIELD", "", CINT(0)) '필드 데이터를 가져올 버퍼 retStr = objAtmi.OnTpalloc ("STRING", "", CINT(0)) '보낼 버퍼에 필드 데이터를 넣는다. 'DELETE_ID ((FLDKEY)201327597) /* number: 1005 type: int */ rVal = objFdl.OnFbput (fbuf, "201327597", taccount_id, CINT("0")) if rVal < 0 then error processing ... end if '트랜잭션을 시작한다. rVal = objTx.OnTx_begin() if rVal < 0 then error processing ... end if 'Tmax로 DELETE 서비스를 요청한다. rVal = objAtmi.OnTpcall ("DELETE", fbuf, CINT(0), fbuf, rlen, CINT("0")) if rVal < 0 then error processing ... rVal = objTx.OnTx_rollback() if rVal < 0 then errno = objAtmi.OnGettperrno() response.write("OnTx_rollback fail["&rVal&"] ["&errno&"]") end if ... else rVal = objTx.OnTx_commit() if rVal < 0 then error processing ... end if end if 'OnTpcall의 결과로 받아 온 fbuf에서 RESULT 필드의 내용을 가져온다. 'RESULT ((FLDKEY)469764048) /* number: 2000 type: string */ rVal = objFdl.OnFbget (fbuf, "469764048", retStr, rlen) if rVal < 0 then error processing ... end if 'RESULT 필드의 내용이 담긴 버퍼에서 실제 내용을 가져온다. rVal = objAtmi.OnTpget (retStr, tmp) if rVal < 0 then error processing ... end if '버퍼를 해제한다. objAtmi.OnTpfree(fbuf) objAtmi.OnTpfree(retStr) 'Tmax와의 연결을 해제한다. rVal = objAtmi.OnTpend() if rVal < 0 then error processing ... end if 'Object를 해제한다. Set objAtmi = nothing Set objFdl = nothing Set objEtc = nothing Set objTx = nothing response.redirect "TmaxTestTx.asp?retStr="&tmp %>
SELECT 버튼 실행 스크립트
다음은 [SELECT] 버튼의 예제이다.
<select.asp>
<% Dim file Dim label Dim tmp 'Tmax와 통신하기 위한 변수 Dim fbuf 'DELETE 서비스에서 fbuf에 담아온 값을 읽기 위한 변수 Dim str Dim branch Dim phone Dim addr 'TmaxTestTx.asp에서 받아 온 값을 담을 변수 Dim taccount_id 'TmaxTestTx.asp에 값을 넘기기 위한 변수 Dim retStr Dim retBranch Dim retPhone Dim retAddr Dim rlen Dim rVal Dim errno 'TmaxTestTx.asp에서 받아 온 값을 설정한다. taccount_id = request("taccount_id") '인터페이스의 Object를 생성한다. Set objAtmi = Server.CreateObject("Tmaxcom.Atmi") Set objFdl = Server.CreateObject("Tmaxcom.Fdl") Set objEtc = Server.CreateObject("Tmaxcom.Etc") Set objTx = Server.CreateObject("Tmaxcom.Tx") %> <script language="javascript"> alert("taccount_id[<%=taccount_id%>]"); </script> <% file = "C:\\Inetpub\\wwwroot\\tmax.env" label = "TMAXC1" 'Tmax와 연결하기 위해 OnTmaxreadenv로 환경변수를 읽어 온다. rVal = objEtc.OnTmaxreadenv (file, label) if rVal < 0 then error processing ... end if 'Tmax와 OnTpstart로 연결한다. tmp = "" rVal = objAtmi.OnTpstart (tmp, tmp, tmp, tmp, CINT(0)) if rVal < 0 then error processing ... end if '버퍼를 OnTpalloc으로 할당한다. '보낼 버퍼/받을 버퍼 fbuf = objAtmi.OnTpalloc ("FIELD", "", CINT(0)) '필드 데이터를 가져올 버퍼 str = objAtmi.OnTpalloc ("STRING", "", CINT(0)) branch = objAtmi.OnTpalloc ("STRING", "", CINT(0)) phone = objAtmi.OnTpalloc ("STRING", "", CINT(0)) addr = objAtmi.OnTpalloc ("STRING", "", CINT(0)) '보낼 버퍼에 필드 데이터를 넣는다. 'SELECT_ID ((FLDKEY)201327598) /* number: 1006 type: int */ rVal = objFdl.OnFbput (fbuf, "201327598", taccount_id, CINT("0")) if rVal < 0 then error processing ... end if '트랜잭션을 시작한다. rVal = objTx.OnTx_begin() if rVal < 0 then error processing ... end if 'Tmax로 SELECT 서비스를 요청한다. rVal = objAtmi.OnTpcall ("SELECT", fbuf, CINT(0), fbuf, rlen, CINT("0")) if rVal < 0 then error processing ... rVal = objTx.OnTx_rollback() if rVal < 0 then errno = objAtmi.OnGettperrno() response.write("OnTx_rollback fail["&rVal&"] ["&errno&"]") end if ... else rVal = objTx.OnTx_commit() if rVal < 0 then error processing ... end if end if 'OnTpcall의 결과로 받아 온 fbuf에서 RESULT 필드의 내용을 가져온다. 'RESULT ((FLDKEY)469764048) /* number: 2000 type: string */ rVal = objFdl.OnFbget (fbuf, "469764048", str, rlen) if rVal < 0 then error processing ... end if 'RESULT 필드의 내용이 담긴 버퍼에서 실제 내용을 가져온다. rVal = objAtmi.OnTpget (str, retStr) if rVal < 0 then error processing ... end if 'BRANCH_ID ((FLDKEY)201327593) /* number: 1001 type: int */ 'PHONE ((FLDKEY)469763050) /* number: 1002 type: string */ 'ADDRESS ((FLDKEY)469763051) /* number: 1003 type: string */ rVal = objFdl.OnFbget (fbuf, "201327593", branch, rlen) rVal = objAtmi.OnTpget(branch, retBranch) rVal = objFdl.OnFbget (fbuf, "469763050", phone, rlen) rVal = objAtmi.OnTpget(phone, retPhone) rVal = objFdl.OnFbget (fbuf, "469763051", addr, rlen) rVal = objAtmi.OnTpget(addr, retAddr) '버퍼를 해제한다. objAtmi.OnTpfree(fbuf) objAtmi.OnTpfree(str) objAtmi.OnTpfree(branch) objAtmi.OnTpfree(phone) objAtmi.OnTpfree(addr) 'Tmax와의 연결을 해제한다. rVal = objAtmi.OnTpend() if rVal < 0 then error processing ... end if 'Object를 해제한다. Set objAtmi = nothing Set objFdl = nothing Set objEtc = nothing Set objTx = nothing response.redirect "TmaxTestTx.asp?retStr="&retStr&"&retBranch="&retBranch&"& retPhone="&retPhone&"&retAddr="&retAddr %>