在线求救啊:如何把一个文件(.txt,.rar,.html)作为数据库一个字段插入数据库。在查询操作的时候又如何把她读出来啊!
解决方案 »
- 一个类中向另一个类中的控件传数据不成功
- ????以下代码拖动Edit控件,为何不成功????
- Clistctrl实现行交替变颜色为什么在虚列表中不起作用
- [请教]一个DLL A被另一个DLL B调用,A可以向B中发送"消息"吗?
- 中国顶级VC++教学光盘转让
- 散分,兼调查一下数据恢复行情,按签名给分.
- 一个棘手,让我头痛的问题:大家快来帮助我!
- 为什么会出现重复定义错误??
- 普通的socket程序要实现SSL加密等功能,须对openssl进行什么操作?高分!
- up有分: vc中文本显示如何实现超级连接的的下划线
- vc++和vc++.net该学哪一个?
- 有个软件叫language 2000,有用过的吗?我试了一下自己机器上的各种软件 显示90%都是VC开发的,是不是这个软件有问题啊?是真的吗?大家觉
可以用ado组件去读取.
LPVOID lpvImageMem = NULL; long lImageSize = rs->GetFields()->GetItem("图片")->ActualSize;if(lImageSize > 0)
{
_variant_t varImage;
varImage = rs->GetFields()->GetItem("图片")->GetChunk(lImageSize);
if(varImage.vt == (VT_ARRAY | VT_UI1))
{
hgImageMem = GlobalAlloc(GHND, lImageSize);
if(hgImageMem!=NULL)
{
lpvImageMem = GlobalLock( hgImageMem);
char *pBuffer= NULL;
SafeArrayAccessData(varImage.parray,(void **)&pBuffer);
CopyMemory(lpvImageMem,pBuffer,lImageSize);
SafeArrayUnaccessData (varImage.parray);
CFile file("a.jpg",CFile::modeWrite|CFile::modeCreate);
file.Write(lpvImageMem,lImageSize);
file.Close();
}
}
} GlobalUnlock(hgImageMem);
lpvImageMem=NULL;
GlobalFree(hgImageMem);
adLockOptimistic, adCmdTable);
rs->AddNew();
_variant_t var;
COleDateTime tDate;
m_datePic.GetTime(tDate);
var.vt=VT_DATE;
var.date=tDate;
rs->GetFields()->GetItem("拍摄日期")->Value=var;
var.Clear();
var.vt=VT_BSTR;
var.bstrVal=strTheme.AllocSysString();
rs->GetFields()->GetItem("主题名称")->Value=var;
var.bstrVal=strId.AllocSysString();
rs->GetFields()->GetItem("照片 ID")->Value=var;
CFile file;
if( !file.Open( m_strPicfile, CFile::modeRead) )
return ;
DWORD uFilesize =(DWORD) file.GetLength();
char* pBuffer = new char[uFilesize + 1];
if(pBuffer!=NULL)
{
ZeroMemory(pBuffer,uFilesize + 1);
VERIFY(file.Read(pBuffer,uFilesize)==uFilesize); VARIANT varImage;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1]; rgsabound[0].lLbound = 0;
rgsabound[0].cElements = uFilesize;
psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
for (long i = 0; i < (long)uFilesize; i++)
SafeArrayPutElement (psa, &i, pBuffer++);
varImage.vt = VT_ARRAY | VT_UI1;
varImage.parray = psa;
rs->GetFields()->GetItem("图片")->AppendChunk(varImage);
}
rs->Update();
pBuffer=pBuffer-uFilesize;
if(pBuffer)
{
delete [] pBuffer;
pBuffer=NULL;
}
MessageBox("添加数据成功!","提示",MB_OK|MB_ICONINFORMATION);
}
catch (_com_error e)
{
PrintComError(e);
} if(rs->State)
rs->Close();