Binary배열 DB 저장 / 불러오기
As a developer/DB 2011. 2. 22. 17:35
저장
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 8;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
BYTE* pV = NULL;
SafeArrayAccessData(psa, (void**)&pV);
for(int i = 0; i < rgsabound[0].cElements; i++)
{
pV[i] = pstData->m_btCamTable[i];
}
SafeArrayUnaccessData(psa);
_variant_t v;
v.parray = psa;
v.vt = VT_ARRAY | VT_UI1;
pAdo->Add_Parameters(L"@PIT_VS_CAM_TABLE",
adVarBinary, sizeof(pstData->m_btCamTable), adParamInput, v);
불러오기
template <class T>
void GetRSMem(_variant_t x, T& ret)
{
int nLen = sizeof(ret);
_variant_t v = m_RS->Fields->Item[x]->Value;
BYTE* pArr = NULL;
SafeArrayAccessData(v.parray, (void**)&pArr);
memcpy(ret, pArr, nLen);
SafeArrayUnaccessData(v.parray);
}
참조 : http://blog.naver.com/c9soft/120056226301