• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
代码的天空
博客园    首页    新随笔    联系   管理    订阅  订阅

C++ ADO 保存二进制到数据的例子

/////////////////////////////////////////////////////////////////////
//ADO保存二进制到数据库的例子,
//使用SafeArrayCreate,SafeArrayPutElement,

//配合_variant_t使用不会造成内存泄漏
/////////////////////////////////////////////////////////////////////

 

 1 static char szTestBin[1024] = "12312312321321";
 2 
 3 HRESULT hr;
 4 _variant_t varChunk;
 5 long lngOffset = 0;
 6 UCHAR chData;
 7 SAFEARRAY FAR *psa = NULL;
 8 SAFEARRAYBOUND rgsabound[1];
 9 
10 //Create a safe array to store the array of BYTES 
11 rgsabound[0].lLbound = 0;
12 rgsabound[0].cElements = 1024;
13 psa = SafeArrayCreate(VT_UI1,1,rgsabound);
14 
15 while(lngOffset < 1024)
16 {
17     chData    = (UCHAR)(szTestBin[lngOffset]);
18     hr = SafeArrayPutElement(psa, &lngOffset, &chData);
19 
20     if(FAILED(hr))
21     {
22         printf("错误");
23     }
24 
25     lngOffset++;
26 }
27 
28 lngOffset = 0;
29 
30 //Assign the Safe array  to a variant. 
31 varChunk.vt = VT_ARRAY|VT_UI1;
32 varChunk.parray = psa;
33 
34 CADOParameter pUserData(CADORecordset::typeVarBinary, 1024);
35 pUserData.SetValue((_variant_t)varChunk);
36 cmd.AddParameter(&pUserData);
37 
38 if (!cmd.Execute())
39 {
40     printf("错误");
41 }  

 

posted @ 2011-04-02 09:58  黑翼  阅读(711)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3