非绑定下如何在Access与图片控件互相读写图片

雨人吧 2000-03-03 02:36:00
能否以一个Sql语句从Aceess中读取带图片字段的数值从而与文本图片框同时交换

...全文
206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
雨人吧 2000-03-09
  • 打赏
  • 举报
回复
谢谢各位大侠,一点小分请笑纳000
sxshao 2000-03-07
  • 打赏
  • 举报
回复
AppendChunk 方法 (ADO)
将数据追加到大型文本、二进制数据 Field 或 Parameter 对象。

GetChunk 方法 (ADO)
返回大型文本或二进制数据 Field 对象的全部或部分内容。

sxshao 2000-03-07
  • 打赏
  • 举报
回复
好象是 DAO 的函数吧!
getchunk
setchunk
grievefish 2000-03-05
  • 打赏
  • 举报
回复
MSDN的Knowledge Base中有几篇E文介绍这方面的文章!
如果你的E文足够应付的话!
论文号是:
Q147727,Q103115,Q1532238
看过也许有启发!
bokei 2000-03-03
  • 打赏
  • 举报
回复
我以前在Visual Foxpro中用的方法.可以试一下在vb里用.
储存:
1.开一个备注型的字段.
2.把图片用文件函数直接打开,把全部文件读进字段.

读取:
1.建一个空的临时文件
2.把备注型字段的数据全部写进去
3.直接把临时的文件赋予图片框.

在vb可以建一个imagelist,在运行时直接用代码把图片加进imagelist,再赋予图片框.
DataBind 2000-03-03
  • 打赏
  • 举报
回复
在c++中,可以参考一下代码
1、取得图片字段的内存句柄
2、锁定内存,获得内存指针
3、找到内存指针指向区域中的第一个BM标记
4、取得BMP文件的头信息,得到文件的字节数
5、写文件
BOOL CC100ToCJKDlg::WriteImg(CRecordset &rs, LPCSTR sFieldByName, LPCSTR sDirByName)
{
CDBVariant dbv1;
dbv1.Clear();
rs.GetFieldValue (sFieldByName,dbv1,DEFAULT_FIELD_TYPE );
char * pBmpBuff=(char *)GlobalLock(dbv1.m_pbinary->m_hData);
GlobalUnlock(dbv1.m_pbinary->m_hData);
if (dbv1.m_pbinary->m_dwDataLength > sizeof(tagBITMAPFILEHEADER))
{
UINT i;
for ( i=0;i < dbv1.m_pbinary->m_dwDataLength;i++)
{
if ((pBmpBuff[i]=='B') &&(pBmpBuff[i+1]=='M'))
break;
}
pBmpBuff +=i;
tagBITMAPFILEHEADER tHead;
memcpy(&tHead,pBmpBuff,sizeof(tagBITMAPFILEHEADER));
CFile ff;
char szBuff[MAX_PATH];
memset(szBuff,0,MAX_PATH);


sprintf(szBuff,"%s\\%05d\\.",sDirByName,atol((LPCSTR)m_superno)/1000+1);
if (_access(szBuff,00) !=0)
{
sprintf(szBuff,"%s\\%05d",sDirByName,atol((LPCSTR)m_superno)/1000+1);
_mkdir(szBuff);
}

sprintf(szBuff,"%s\\%05d\\%s.bmp",sDirByName,atol((const char *)m_superno)/1000+1,(const char *)m_superno);
ff.Open(szBuff,CFile::modeCreate and CFile::modeWrite);
ff.Write(pBmpBuff,tHead.bfSize);
ff.Flush();
ff.Close();

return TRUE;
}
else
{

return FALSE;
}
}
subzero 2000-03-03
  • 打赏
  • 举报
回复
直接是肯定不行的
因为picturebox的数据并非是图片的二进制数据
间接的话,你必须清楚了解picturebox的数据构成
然后用RS对象的取二进制方法取得图片的二进制数据
再转换为PICTUREBOX兼容格式的数据
假如完全使用API的话,速度不会太慢
Un1 2000-03-03
  • 打赏
  • 举报
回复
直接好象不行,间接可以不过很慢!

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧