티스토리 뷰
연속데이타(OCCURS) 처리
모의계좌 잔고 종목은 아래 그림처럼 14개 종목이다.
TR CSPAQ12300 (현물계좌잔고내역조회) 는 10개만 보내고 나머지 4개는 재 요청 해야만 받는다.
이런 연속 데이타는 Header 타입이 B 인 경우에 해당된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
CString m_strCSPAQ12300연속조회키;
BOOL CJangoDlg::Request_CSPAQ12300(BOOL b연속조회)
{
int nReqID = g_iXingAPI.Request(GetSafeHwnd(), "CSPAQ12300", &inBlock, sizeof(inBlock), b연속조회, b연속조회 ? m_strCSPAQ12300연속조회키 : "");
...
}
void CJangoDlg::Recv_CSPAQ12300(LPRECV_PACKET pRpData)
{
typedef struct
{
CSPAQ12300OutBlock1 outBlock1;
CSPAQ12300OutBlock2 outBlock2;
char sCountOutBlock3[5]; // Occurs 갯수
CSPAQ12300OutBlock3 outBlock3[1];
} CSPAQ12300AllOutBlock, *LPCSPAQ12300AllOutBlock;
LPCSPAQ12300AllOutBlock pAllOutBlock = (LPCSPAQ12300AllOutBlock)pRpData->lpData;
CString strCountBlock3(pAllOutBlock->sCountOutBlock3);
...
m_strCSPAQ12300연속조회키 = pRpData->szContKey; // 연속 데이타키 (잔고가 10종목 이상인 경우 필요)
m_strCSPAQ12300연속조회키.Trim(); // 연속 데이타가 있으면 "000000001" 또 다른 연속 데이타가 있으면 "000000002" 로 되는지 확인 못함
if (m_strCSPAQ12300연속조회키 != "0000000000" && m_strCSPAQ12300연속조회키 != "") // 연속 데이타가 있으면 재 요청, 잔고 종목 연속 데이타가 없으면 "0000000000"
Request_CSPAQ12300(TRUE); // 잔고 종목이 없으면 "" 값을 가진다. ...
}
|
cs |
CSPAQ12300 1회/초 제한이 있으나 연속 조회는 5회/초 또는 200회/10분 제한을 갖는다. (2016.05.31 기준)
www.ebestsec.co.kr/apiguide/guide.jsp?cno=305 참고
TR t0424 인 경우 연속 데이타가 1회 요청으로 전부 받는다. (Header 타입은 D)