/*
 * MM_BIN_INQ.pgc - mm 모듈 서비스 MM_BIN_INQ (one service = one file).
 * 기능: BIN 조회.
 * 기존 인라인 mm_svr.pgc에서 분리; caller의 XA 브랜치에서 실행(EXEC SQL CONNECT 없음).
 * mm_svr가 tpsvrinit에서 이 서비스를 tpadvertise 한다.
 */
#include "MM_BIN_INQ.h"

void MM_BIN_INQ(TPSVCINFO *p)
{
    UBFH *b = (UBFH *)p->data;
    char bin[16];
    EXEC SQL BEGIN DECLARE SECTION;
    char h_bin[16], h_issuer[32], h_status[16];
    EXEC SQL END DECLARE SECTION;
    gets_(b, T_KEY1, bin, sizeof(bin));
    strncpy(h_bin, bin, sizeof(h_bin)-1); h_bin[sizeof(h_bin)-1] = 0;
    EXEC SQL SELECT issuer_cd, status INTO :h_issuer, :h_status
        FROM mm_bin WHERE bin = :h_bin;
    if (sqlca.sqlcode < 0 || sqlca.sqlcode == 100) FAIL(b);
    Bchg(b, T_ISSUER, 0, h_issuer, 0L);
    Bchg(b, T_STATUS, 0, h_status, 0L);
    OK(b);
}
