56,681
社区成员
发帖
与我相关
我的任务
分享
_RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
SOpen.Format("SELECT * FROM test_data ");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
MySet->AddNew(); ///添加新记录
if(buffer)//要保存的数据都在buffer[]里
{
try
{ rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 12020;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///创建SAFEARRAY对象
for (long i = 0; i < 12020; i++)
SafeArrayPutElement (psa, &i, buffer++); ///将buffer指向的二进制数据保存到SAFEARRAY对象psa中
varBLOB.vt = VT_ARRAY | VT_UI1; ///将varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa; ///为varBLOB变量赋值
HRESULT hr;
hr=MySet->Fields->GetItem("data")->AppendChunk(varBLOB);///加入BLOB类型的数据
if(SUCCEEDED(hr))
AfxMessageBox("ok");
}
catch(_com_error &e)
{
dump_com_error(e);
return FALSE;
}
}
MySet->PutCollect("file_name",_variant_t(record.FileName));
MySet->PutCollect("test_date",_variant_t(record.Date));
MySet->PutCollect("switch_id",_variant_t(Switch_ID));
MySet->PutCollect("test_type",_variant_t(record.Type));
MySet->PutCollect("time",_variant_t(record.Time));
MySet->Update(); //到这行就出错了
MySet->Close();///关闭记录集
}
RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
SOpen.Format("SELECT * FROM test_data ");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
MySet->AddNew(); ///添加新记录
MySet->PutCollect("file_name",_variant_t(record.FileName));
MySet->PutCollect("test_date",_variant_t(record.Date));
MySet->PutCollect("switch_id",_variant_t(Switch_ID));
MySet->PutCollect("test_type",_variant_t(record.Type));
MySet->PutCollect("time",_variant_t(record.Time));
MySet->Update();
MySet->Close();///关闭记录集);//第一遍不要管那个blob字段
MySet.CreateInstance(__uuidof(Recordset)););//第二遍再往blob字段插入数据
SOpen.Format("SELECT * FROM test_data ");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
if(buffer)//要保存的数据都在buffer[]里
{
try
{ rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 12020;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///创建SAFEARRAY对象
for (long i = 0; i < 12020; i++)
SafeArrayPutElement (psa, &i, buffer++); ///将buffer指向的二进制数据保存到SAFEARRAY对象psa中
varBLOB.vt = VT_ARRAY | VT_UI1; ///将varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa; ///为varBLOB变量赋值
HRESULT hr;
hr=MySet->Fields->GetItem("data")->AppendChunk(varBLOB);///加入BLOB类型的数据
if(SUCCEEDED(hr))
AfxMessageBox("ok");
}
catch(_com_error &e)
{
dump_com_error(e);
return FALSE;
}
}
}
RecordsetPtr MySet;
MySet.CreateInstance(__uuidof(Recordset));
SOpen.Format("SELECT * FROM test_data ");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
MySet->AddNew(); ///添加新记录
MySet->PutCollect("file_name",_variant_t(record.FileName));
MySet->PutCollect("test_date",_variant_t(record.Date));
MySet->PutCollect("switch_id",_variant_t(Switch_ID));
MySet->PutCollect("test_type",_variant_t(record.Type));
MySet->PutCollect("time",_variant_t(record.Time));
MySet->Update();
MySet->Close();///关闭记录集);//第一遍不要管那个blob字段
MySet.CreateInstance(__uuidof(Recordset)););//第二遍再往blob字段插入数据
SOpen.Format("SELECT * FROM test_data ");
MySet->Open(_bstr_t(SOpen),_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdText);
if(buffer)//要保存的数据都在buffer[]里
{
try
{ rgsabound[0].lLbound = 0;
rgsabound[0].cElements = 12020;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound); ///创建SAFEARRAY对象
for (long i = 0; i < 12020; i++)
SafeArrayPutElement (psa, &i, buffer++); ///将buffer指向的二进制数据保存到SAFEARRAY对象psa中
varBLOB.vt = VT_ARRAY | VT_UI1; ///将varBLOB的类型设置为BYTE类型的数组
varBLOB.parray = psa; ///为varBLOB变量赋值
HRESULT hr;
hr=MySet->Fields->GetItem("data")->AppendChunk(varBLOB);///加入BLOB类型的数据
if(SUCCEEDED(hr))
AfxMessageBox("ok");
}
catch(_com_error &e)
{
dump_com_error(e);
return FALSE;
}
}
}