vc++6.0如何存取长二进制数据至access

本人新手,求指点,要是有代码更好。。。。坐等高人具体来说,access中的长二进制数据存储的是图片,有jpeg、png两种格式...数据类型是OLE对象... 本人新手,求指点,要是有代码更好。。。。坐等高人
具体来说,access中的长二进制数据存储的是图片,有jpeg、png两种格式...数据类型是OLE对象
展开
 我来答
匿名用户
2011-09-24
展开全部
数据库中的二进制文件是没有办法直接在数据库中显示的,只可以通过程序进行数据库图片的插入和读取,不知道你使用的是是么开发语言。
我以C#代码为例。
一般的思路都是:
现将图片存入数据库。
// 需要保存的图斗闷片为image1
// 先将图片保存起来
image1.Save("a.bmp");
// 获得文件流
FileStream fileStream = new FileStream(”a.bmp”, FileMode.Open,FileAccess.Read);
// 将文件流转化成二进制流
BinaryReader binaryReader = new BinaryReader(fileStream);
byte[] img = binaryReader.ReadBytes((int)fileStream.Length);
binaryReader.Close();
fileStream.Close();
// 可以把文件删除
File.Delete(”a.bmp”);
string sql = ”insert into PIC(Pic) values (@img)”;
// 获取数据库连接方法getConn()自己写
SqlConnection conn =getConn();
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.Add(”@img”, SqlDbType.Image).Value = img;
conn.Open();
comm.ExecuteNonQuery();
// 这样就已经族销高将图片存到了数据库中
conn.Close();

其次就是读取。比较简单。
string sql = ”select Pic from PIC where”+ 你的检索条件;
SqlConnection conn = getConn();
SqlCommand comm = new SqlCommand(sql, conn);
conn.Open();
// 获取第一条数据
byte[] dta = (byte[])comm.ExecuteScalar();
conn.Close();
try
{
MemoryStream ms = new MemoryStream(dta);
Image newImage= Image.FromStream(ms);
}
catch
{
MessageBox.Show(”Error”);
}

这样就实现了图片数据的存取功能。
这兆尺只是通过C#的方法描述下基本思路,其他语言都是相类似的方法,只需要找到相同功能的API函数就行,祝你成功。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式