网站首页 > 网管员之家 > 当前主题    站内搜索    首页  上一页  下一页  尾页  页次1/1         新用户申请  老用户登录  返回首页
作者信息   主题: 数据库与图片或者文件的关系如何处理?423

admin


发表主题: 891
发表回复: 1979
网站暂行积分: 4652


【人类幸存者】



  发表时间: 2007-4-19 9:27:29             


问题:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

数据库与照片/图片/文件的关系如何处理?
浪漫烛光 www.langmanzg.com

也就是,比如有照片若干,怎样能在数据库中存储并显示?
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

方法一:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

把照片放进数据库,照片的格式最好是bmp,这样就可以在窗体上显示出来,不过这样数据库的体积会暴增。
浪漫烛光 www.langmanzg.com

详细的使用方法请参考Access帮助中的 PictureData 属性(本文末尾有相关帮助)。
浪漫烛光 www.langmanzg.com

而且,你可以直接用 commdlg API 函数来给图像框赋值,然后直接读取某个图像框的 PICTUREDATA 并存储到某个 IMAGE 字段中。这样做的优点是显示、读取方便,缺点是如果图片精度高,占用的硬盘空间会爆大。
浪漫烛光 www.langmanzg.com

详细示例请参考:
浪漫烛光 www.langmanzg.com

http://access911.net/down/eg/OLEfieldAndPictureData.rar(46KB)
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

方法二:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

设一个OLE字段,然后插入对象就行了(对着字段单击右键)。但是要注意的是,用上述方法加入数据库的图片只能以手动方式保存,需要用程序读取的时候会碰到存储在ole字段中二进制数据与源文件不符的情况。主要是因为ole引y,} 9nMGf擎在图片的前面加了一段信息给他自己用。
浪漫烛光 www.langmanzg.com

请参考:
浪漫烛光 www.langmanzg.com

http://access911.net/index.asp?board=4&mode=3&recordid=75FAB21E12DC
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

方法三:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

将图片文件以二进制方式存储在数据库中,使用时调用。详细情况请参考:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

使用 ADO 的 STREAM 对象的 LoadFromFile 方法以及 SaveToFile 方法实现:
浪漫烛光 www.langmanzg.com

http://access911.net/index.asp?board=4&mode=3&recordid=74FAB51E13DC
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

使用 ADO 的 RECORDSET.FIELD 对象的 GetChunk 以及 AppendChunk 方法实现:
浪漫烛光 www.langmanzg.com

http://access911.net/index.asp?board=4&mode=3&recordid=75FAB01E
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

ASP 中使用的方法:
浪漫烛光 www.langmanzg.com

http://access911.net/index.asp?board=4&mode=3&recordid=79FAB31E
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

下列例程就是采用这种qyC& 7n%a方法,在显示的时候把长二进制数据保存为临时文件用于显示
浪漫烛光 www.langmanzg.com

http://access911.net/down/photo.rar(size=308K)
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

方法四:
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

不把照片放入数据库,只把照片的路径保存到数据库中,动态加载,这样可以支持很多种图片格式。作法是在窗体上放一个图像控件,然后根据员工编号或别的有关联的字段去找出路径,用以下语句来加载图像:
浪漫烛光 www.langmanzg.com

图像1.Picture =路径名
浪漫烛光 www.langmanzg.com

路径名必须包括图象文件名。
浪漫烛光 www.langmanzg.com

详细情况你可以参考 access xp 的示例 northwind.mdb 中的雇员窗体
浪漫烛光 www.langmanzg.com

你也可以参考:http://access911.net/down/eg/LinkPicture.rar(61.1KB)
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

以下是 PictureData 的参考::
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

PictureData 属性
浪漫烛光 www.langmanzg.com

请参阅 应用于 示例 特性
浪漫烛光 www.langmanzg.com

使用 PictureData 属性可以将窗体、报表或控件中的图片复制到另一个支持 Picture 属性的对象中。Variant 型,可读写。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

expression.PictureData
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

expression   必需。返回“Applies To”列表中的一个对象的表达式。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

说明
浪漫烛光 www.langmanzg.com

PictureData 属性设置值可以是其他图像控件、命令按钮、切换按钮、窗体或报表的 PictureData 属性。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

使用 Visual Basic 可以对该属性进行设置。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

使用该属性可以根据用户所执行的操作的不同,在窗体中显示不同的背景图片。例如,可以根据“客户”窗体打开的目的是输入数据还是浏览数据而在打开窗体时使用不同的背景图片。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

另外,将 PictureData 属性、Timer 事件和 TimerInterval 属性一起使用,可以在窗体中产生简单的动态背景效果。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

示例
浪漫烛光 www.langmanzg.com

下面的示例使用三个图像控件实现一只蝴蝶从窗体中飞过的动态效果。Hidden1 图像控件包含的图片是一只双翅向上的蝴蝶,Hidden2 图像控件包含的图片也是一只蝴蝶,不过这只蝴蝶的双翅是向下的。这两个控件的 Visible 属性都设为 False。TimerInterval 属性设为 200。每次发生 Timer 事件时,就通过使用隐藏图像控件的 PictureData 属性更改 Visible1 图像控件中的图片,并且可见图像控件向右移动 200 缇。当可见图像控件的 Left 属性值大于公用变量 gfrmWidth 中存储的窗体宽度时,可见图像控件即重新移回窗体的左边。gfrmWidth 变量值在窗体的 Open 事件中设为 Me.Width。
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

Private Sub Form_Timer()
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

    Static intPic As Integer
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

    Select Case intPic
浪漫烛光 www.langmanzg.com

        Case Is = 1
浪漫烛光 www.langmanzg.com

            Me!Visible1.PictureData = Me!Hidden1.PictureData
浪漫烛光 www.langmanzg.com

        Case Is = 2
浪漫烛光 www.langmanzg.com

            Me!Visible1.PictureData = Me!Hidden2.PictureData
浪漫烛光 www.langmanzg.com

        Case Else
浪漫烛光 www.langmanzg.com

    End Select
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

    If intPic = 2 Then intPic = 0
浪漫烛光 www.langmanzg.com

    intPic = intPic + 1
浪漫烛光 www.langmanzg.com

    If (Me!Visible1.Left > gfrmWidth) Then Me!Visible1.Left = 0
浪漫烛光 www.langmanzg.com

    Me!Visible1.Left = Me!Visible1.Left + 200
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com

End Sub
浪漫烛光 www.langmanzg.com


浪漫烛光 www.langmanzg.com





  不要再悲叹哀怨,切莫再有泪空弹。 用鲜花洗涤旧世,剑之锋血光闪闪。
新用户注册   返回首页
首页  上一页  下一页  尾页  页次1/1   转到第