很急!!!请问:1、如何将BMP图象保存到SQL SERVER数据库中?2、从数据库取出BMP字段显示?希望有源代码!
问题点数:20、回复次数:7Top
1 楼humeiyixiao(狐媚一笑)回复于 2001-12-07 10:08:58 得分 5
BMP文件太大,建议你将图片压缩成JPG文件格式,否则数据库文件太大。
将图片字段设置为长二进制文件格式。Top
2 楼Linxianjie(Sunny)回复于 2001-12-07 23:27:05 得分 0
数据类型有image类型,可以试一试.
Top
3 楼snlee(新丁)回复于 2001-12-07 23:39:01 得分 0
upupTop
4 楼zzh()回复于 2001-12-08 10:25:11 得分 0
直接使用Image类型存放,然后再读取出来,以文件的形式保存。Top
5 楼Eie(没什么大不了)回复于 2001-12-08 11:25:04 得分 15
将该列帮定到CLongBinary,
保存过程:
AddNew()
CFile f;
f.Open("***.bmp",CFile::modeRead);
m_BMP.m_dwDataLength=f.GetLength();
m_BMP.m_hData=::GlobalAlloc(GMEM_MOVEABLE,f.GetLength());
ASSERT(m_BMP.m_hData != NULL);
BYTE* pBuf=::GlobalLock(m_BMP.m_hData);
ASSERT(pBuf != NULL);
f.ReadHuge(pBuf,f.GetLength());
f.Close();
SetFieldNull(&m_BMP,m_BMP.m_dwDataLength==0);
SetFieldDirty(&m_BMP,m_BMP.m_dwDataLength>0);
Update();
::GlobalUnlock(m_Bmp.m_hData);
::GlobalFree(m_Bmp.m_hData);
m_BMP.m_dwDataLength=0;
m_BMP.m_hData=NULL;
//读出过程
Open();//或者Requery();
BYTE* pBuf=::GlobalLock(m_BMP.m_hData);
ASSERT(pBuf != NULL);
pBuf就是BMP文件数据了,显示BMP文件就不用我写了把.
Top
6 楼Eie(没什么大不了)回复于 2001-12-08 11:26:11 得分 0
将该列帮定到CLongBinary,
保存过程:
AddNew()
CFile f;
f.Open("***.bmp",CFile::modeRead);
m_BMP.m_dwDataLength=f.GetLength();
m_BMP.m_hData=::GlobalAlloc(GMEM_MOVEABLE,f.GetLength());
ASSERT(m_BMP.m_hData != NULL);
BYTE* pBuf=::GlobalLock(m_BMP.m_hData);
ASSERT(pBuf != NULL);
f.ReadHuge(pBuf,f.GetLength());
f.Close();
SetFieldNull(&m_BMP,m_BMP.m_dwDataLength==0);
SetFieldDirty(&m_BMP,m_BMP.m_dwDataLength>0);
Update();
::GlobalUnlock(m_Bmp.m_hData);
::GlobalFree(m_Bmp.m_hData);
m_BMP.m_dwDataLength=0;
m_BMP.m_hData=NULL;
//读出过程
Open();//或者Requery();
BYTE* pBuf=::GlobalLock(m_BMP.m_hData);
ASSERT(pBuf != NULL);
pBuf就是BMP文件数据了,显示BMP文件就不用我写了把.
Top
7 楼TalentSprite(举头望明月)回复于 2001-12-08 13:37:25 得分 0
upupupTop




