请教一下
在sql server 中 向含一列名为b,类型binary的表中插入数据,为什么出错呢? char Array[] = "today is Sunday..";
_variant_t bVar; VARIANT varBLOB;   
  SAFEARRAY *psa;   
  SAFEARRAYBOUND rgsabound[1];   
  rgsabound[0].lLbound   =   0;   
  rgsabound[0].cElements   =   sizeof(Array);   
  psa   =   SafeArrayCreate(VT_UI1,   1,   rgsabound);     BYTE*   pByte = new BYTE[50];   
 if(SafeArrayAccessData(psa,(void**)&pByte)   ==   NOERROR)   
  memcpy((LPVOID)pByte,(LPVOID)&Array,sizeof(Array));   
  SafeArrayUnaccessData(psa);   
   
  varBLOB.vt   =   VT_ARRAY   |   VT_UI1;   
  varBLOB.parray   =   psa;   
 pRst->Fields->GetItem("b")->AppendChunk(varBLOB);  

解决方案 »

  1.   

    1. 首先参考如下文章:
    http://www.vckbase.com/document/viewdoc/?id=719
    http://www.vckbase.com/document/viewdoc/?id=2522. 还报错,则用如下代码把你的代码包起来
    try 

        //你的代码 

    catch(_com_error &e) 

        AfxMessageBox(e.Description()); 

    看看能否捕获异常??
      

  2.   

    pRst->Fields->GetItem("b")->AppendChunk(varBLOB); 
    在这个位置弹出,“在此环境中不允许操作"
    请教一下。这个是什么原因?