用ADO连接SQL数据库后,从数据库里查询记录,记录的一个字段是binary类型,查询后结果记录集是_RecordsetPtr pset;怎么将这个二进制的字
用ADO连接SQL数据库后,从数据库里查询记录,记录的一个字段是binary类型,查询后结果记录集是_RecordsetPtr pset;如何将这个二进制的字
用ADO连接SQL数据库后,从数据库里查询记录,记录的一个字段是binary类型,查询后结果记录集是_RecordsetPtr pset;如何将这个二进制的字段转换成字符串?
读字段的代码:
while(!pset-> adoEOF)
{
OneRecord OneRec ;
_variant_t code,tcode;
CString str;
for (int j = 0; j < m_nResultCol; j++)
{
code = pset-> Fields-> Item[ (long)j ]-> Value;
if(code.vt != 1 ) //数据非空,注意此处就是为1
{
int type ;
type = code.vt ;
if(VariantChangeType( &tcode, &code, 0, VT_BSTR ) == S_OK ) //转换数据类型为字符串
{
str = tcode.bstrVal;
str.TrimRight( " ") ;
}
}
else
str.Empty();
}
pset-> MoveNext();
}
pset-> Close() ;
------解决方案--------------------
BYTE bvar[5];
CString str,mstr;
for(int i=0; i <5; i++)
{
str.Format( "%02x ", bvar[i]);
mstr += str;
}
用ADO连接SQL数据库后,从数据库里查询记录,记录的一个字段是binary类型,查询后结果记录集是_RecordsetPtr pset;如何将这个二进制的字段转换成字符串?
读字段的代码:
while(!pset-> adoEOF)
{
OneRecord OneRec ;
_variant_t code,tcode;
CString str;
for (int j = 0; j < m_nResultCol; j++)
{
code = pset-> Fields-> Item[ (long)j ]-> Value;
if(code.vt != 1 ) //数据非空,注意此处就是为1
{
int type ;
type = code.vt ;
if(VariantChangeType( &tcode, &code, 0, VT_BSTR ) == S_OK ) //转换数据类型为字符串
{
str = tcode.bstrVal;
str.TrimRight( " ") ;
}
}
else
str.Empty();
}
pset-> MoveNext();
}
pset-> Close() ;
------解决方案--------------------
BYTE bvar[5];
CString str,mstr;
for(int i=0; i <5; i++)
{
str.Format( "%02x ", bvar[i]);
mstr += str;
}