access数据库是否能够存图片?该怎么处理
发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
access数据库是否能够存图片?
access数据库是否能够存图片?如果可以,该怎么存?我想用VB+access操作..
------解决方案--------------------
With stm
If rs2.RecordCount > 0 Then
.Open
.Type = adTypeBinary
.LoadFromFile App.Path & "DATA.jpg"
rs2.Fields!图片 = .Read
.Close
End If
.Open
.Type = adTypeBinary
.Write rs2.Fields!图片
.SaveToFile Path, adSaveCreateOverWrite
.Close
Image1.Picture = LoadPicture(Path)
' rs1.Close
End With
------解决方案--------------------
可以的, 先把图片打开, 读入内存缓冲区,然后用所组去接受,然后再入库; 用的时候再出库。
void CInputpictureDlg::OnOK()
{
// TODO: Add extra validation here
try
{
CString id,name;
m_id.GetWindowText(id);//从窗口给图片编号
if(id.IsEmpty())
{
MessageBox("编号不能空");
return;
}
m_name.GetWindowText(name);//从窗口给图片取名字
if(name.IsEmpty())
{
MessageBox("名字不能为空");
return;
}
char *m_pBuffer;
//定义内存缓冲区
CFile file;
//定义文件对象
if(!file.Open(strText,CFile::modeRead))
{
MessageBox("不能打开文件");
return;
}
//定义文件的长度
DWORD m_filelen;
//取得文件的长度
m_filelen = file.GetLength();
//根据文件的长度分配内存空间
m_pBuffer = new char[m_filelen + 1];
//读取图片文件到m_pBuffer中
if(file.ReadHuge(m_pBuffer,m_filelen)!=m_filelen)
{
MessageBox("读取文件出错");
return;
}
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
_bstr_t sql;
sql = "select*from picture";
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(sql);
//入库开始喽
m_pRecordset->AddNew();
VARIANT varblob;
SAFEARRAY *psa;
SAFEARRAYBOUND rgsabound[1];
rgsabound[0].lLbound = 0;
rgsabound[0].cElements = m_filelen;
//创建数组
psa = SafeArrayCreate(VT_UI1,1,rgsabound);
//将m_pBuffer写入数组
for(long i=0;i<(long)m_filelen;i++)
{
SafeArrayPutElement(psa,&i,m_pBuffer++);
}
varblob.vt = VT_ARRAY|VT_UI1;
varblob.parray = psa;
m_pRecordset->GetFields()->GetItem("id")->Value = (_bstr_t)id;
m_pRecordset->GetFields()->GetItem("name")->Value = (_bstr_t)name;
//调用AppendChunk将图片数据写入phote字段内
m_pRecordset->GetFields()->GetItem("photo")->AppendChunk(varblob);
//生效喽, 断开链接喽
m_pRecordset->Update();
m_AdoConn.ExitConnect();
}
catch(...)
{
MessageBox("操作失败");
return;
}
MessageBox("操作失败");
}
不知道我有没有说明白, 同时对于声音文件等都是以此类推喽, (*^__^*) 嘻嘻……
------解决方案--------------------
ACCESS中能存图片,但不建议存在ACCESS中。
因为,一个200K左右的图片文件,存在ACCESS中后,access文件的大小会增加10M左右。
嘿嘿,自己计算下你的硬盘能存多少图片呢?
------解决方案--------------------
我觉得把图片和数据库放在同一个文件夹里,然后用插入对象的方式,调取图片就行了,
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
如何查询一个字段内不同值数量?
一个字段名 为 ipaddr
是记录 IP地址的
大约有500条记录
里面有重复的
我现在想查...
-
cmd添加条目后,如何返回autoid
需要添加一个用户,然后返回其自动编号
以前我用这种办法
VBScript code
function addUser(strName)...
-
频繁从数据库中查询数据
现在遇到一个问题就是:用ListView显示数据,数据量可能很大,所以每次都只将要显示的数据取出来,这样如果用户...
-
【求助】ACCESS數據庫如何實現批量修改一列字段的值
ACCESS數據庫如何實現批量修改一列字段的值,也就是我的一個數據庫,裏面一列存...
-
ACCESS奇怪的'标准表达式中数据类型不匹配'?
小弟冲ACCESS数据库向oracle数据库导入数据,用的是insert into select语句.sql如下:...
-
如何对两个查询结果进行横向联合?
两个查询结果的记录数一样,字段不一样,
如何用sql语句将两个查询结果横向联合成一个查询结果?
谢谢...
-
求sql往表中增加新的字段
如何用sql往access表中增加新的字段,该字段是数字类型,为关键字,且默认值为1
求高人啊。
------解决...
-
求救!!!超简单的一个统计怎么实现???分就这么多啦。
求救!!!超简单的一个统计怎么实现???分就这么多啦。
表:销售号 时间 ...
-
Access:对于具有相同字段数目和类型的多个表,在查询条件相同时,有没有简便Select语句写法将查询结果Union起来
分成多个表式为了组...
-
Access 报表筛选器
当报表使用过筛选器后,再次打开报表显示的结果还是上次筛选的结果,如何再次打开报表,是数据还原到没用使用过筛选...