我使用ADO的AppendChunk是出现错误。但是在ACESS200中却可以添加记录成功。
if(!m_bModify) return;
UpdateData();
if(m_pBMPBuffer == NULL || m_hPhotoBitmap == NULL || m_UserName == "" || m_Old == "")
{
AfxMessageBox("您没有提供完整的用户信息。\r\n这些信息包括:用户名、年龄、照片");
return;
}
m_buttonSaveInfo.EnableWindow(FALSE);
char *pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
if(m_bNewUser)
m_pRecordset->AddNew();
m_pRecordset->PutCollect("username",_variant_t(m_UserName));
m_pRecordset->PutCollect("old",atol(m_Old));
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
// m_pRecordset->GetFields()->GetItem("photo")->Attributes=TRUE;
m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varBLOB);
}
m_pRecordset->Update();
m_buttonDeleteUser.EnableWindow();
ResetControls();
m_bNewUser = FALSE;
m_bModify = FALSE;
if(!m_bModify) return;
UpdateData();
if(m_pBMPBuffer == NULL || m_hPhotoBitmap == NULL || m_UserName == "" || m_Old == "")
{
AfxMessageBox("您没有提供完整的用户信息。\r\n这些信息包括:用户名、年龄、照片");
return;
}
m_buttonSaveInfo.EnableWindow(FALSE);
char *pBuf = m_pBMPBuffer;
VARIANT varBLOB;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
if(m_bNewUser)
m_pRecordset->AddNew();
m_pRecordset->PutCollect("username",_variant_t(m_UserName));
m_pRecordset->PutCollect("old",atol(m_Old));
if(pBuf)
{
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_nFileLen;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)m_nFileLen; i++)
SafeArrayPutElement (psa, &i, pBuf++);
varBLOB.vt = VT_ARRAY | VT_UI1;
varBLOB.parray = psa;
// m_pRecordset->GetFields()->GetItem("photo")->Attributes=TRUE;
m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varBLOB);
}
m_pRecordset->Update();
m_buttonDeleteUser.EnableWindow();
ResetControls();
m_bNewUser = FALSE;
m_bModify = FALSE;
解决方案 »
- 我要这个计算器实现循环运算 该怎么改啊 谢谢了
- VC+WEBBROWSER访问页面中的TREEVIEW
- 客服端栈上声明一个CAsyncSocket对象obj obj.Create()、obj.connect()//进行连接行吗?
- 一个简单的Windows程序的问题
- 如何确定用CtoolbarCtrl动态创建的工具条在屏幕或在dialog上的相对坐标。
- vc调试问题,跪谢各位朋友了~
- 如何让对话框程序中的文本控件和输入框控件变灰并不可用?
- 急急急
- CListView中如何复制和粘贴多个列表视项?望高手赐教!
- 为什么小不了:VC里的属性页是不是有尺寸限制
- 如何在CList Box中設置column?
- 请问能否在COM中传递可变结构的可变长数组?如何?急盼!
花了我很多很多时间,还是整不明白,
SQL SERVER里的image字段好不支持直接的,
它只是存放了一个16位的指针,
而实际的数据是另外单独存放的,
并且取出来的时候,也是做了封装的,
到现在我还不知道封装后,实际二进制数据到底偏移了什么字节?
后来,只是在数据库里存放了一个图片文件的文件名和路径!
但是JPG格式不可以保存,不知是什么原因
不知是否对你有所帮助。