现在数据库表格中的字段名:userpower,字段为varbinary类型,长度为50,我向这个字段inser into 一个数据,而我现在想用VC++读取这个字段的内容
m_regeditsqlstr.Format("select * from userfile");
try
{
m_SQL.pRs->Open((_variant_t)m_regeditsqlstr, m_SQL.pConn.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdUnknown);
if((m_SQL.pRs ->ADOEOF && m_SQL.pRs ->BOF ))
{
m_SQL.pRs->Close();
return TRUE;
}
m_SQL.pRs->MoveFirst ();
while(!m_SQL.pRs->ADOEOF)
{
sTemp=m_SQL.pRs->GetCollect(_variant_t("userpower"));}
}
而用
sTemp=m_SQL.pRs->GetCollect(_variant_t("userpower"));
时,读出的数据都是???,
请问有什么方法正确读出来不?

解决方案 »

  1.   

    如果_variant_t sTemp;我觉得可以读出的!
    不过,应该是二进制,不能用字符串的,应该想办法自己转化一下!估计是密码吧
      

  2.   

    用CByteArray或者CBinary类型的变量来绑定字段
      

  3.   

    一般字符读取方法
    _variant_t sTemp;
    CString strData;
    m_SQL.pRs->MoveFirst (); 
    while(!m_SQL.pRs->ADOEOF) 

    sTemp=m_SQL.pRs->GetCollect(_variant_t("userpower")); 
    if(sTemp.vt != VT_NULL)
    strData= (LPCSTR)_bstr_t(sTemp);
    }大数据量数据读取方法
    用GetChunk 函数
    http://www.51chm.com/ado/mdmthappendchunkxvc.shtml
      

  4.   

    sTemp要用COleVariant类型,读取后,取CByteArray
      

  5.   

    用Variant等类型变量,获得数据后,处理CByteArray
      

  6.   

    该字段很可能是经过加密的数据
    userpower是不是游戏中的生命值?加密了。