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

本文提供了一个使用ADO将二进制数据保存至数据库的例子。通过SafeArrayCreate和SafeArrayPutElement创建并填充安全数组,再将其赋值给_variant_t类型变量,最后设置参数并执行命令完成数据存储。

/////////////////////////////////////////////////////////////////////
//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 }  

 

转载于:https://www.cnblogs.com/yejiansnake/archive/2011/04/02/ADO.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值