5519.html
来自「以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题」· HTML 代码 · 共 23 行
HTML
23 行
<html>
<head>
<title>Re: 如何储存图档比较好?</title>
</head>
<body bgcolor="#FFFFFF" vlink="#808080">
<center>
<h1>Re: 如何储存图档比较好?</h1>
</center>
<hr size=7 width=75%>
<hr size=7 width=75%><p>
Posted by <a href="mailto:th4005@mail.intonet.net.tw">老怪</a> on September 10, 1998 at 23:40:03:<p>
In Reply to: <a href="5362.html">如何储存图档比较好?</a> posted by Linus on September 07, 1998 at 18:04:49:<p>
: 我有个会员系统,其中想显示会员照片图档,<br>: 可是我不知道该如何储存它及展示,<br>: 应该是存路径就好,还是可以用binary的方式把图档存到db?<br>: 如果是后者,该如何display呢?<br>: thanks<p>这是我的说明<br>老怪答:<p>首先你要加二进制资料的栏位必须是 Memo or LongBinary. <br>开启资料库<br>Dim Db As Database<br>Dim Rs As Recordset<br> Set Db = OpenDatabase("YourDataBasePathAndName")<br> Set Rs = Db.OpenRecordset("YourTabelName") <br>读取二进制档案<br>Dim Buff() As Byte<br>Dim FileHandle As Integer<br> FileHandle = FreeFile<br> Open "YourZipPathAndName" For Binary As #FileHandle<br> ReDim Buff(LOF(FileHandle) - 1)<br> Get #FileHandle, , Buff<br> Close #FileHandle <br>用 AppendChunk 把 Buff 加到 LongBinary 栏位里<br> Rs.AddNew<br> Rs!FieldName.AppendChunk Buff<br> Rs.Update <br>用 GetChunk 取出 LongBinary 栏位里的资料<br>Dim Buff() As Byte<br> ReDim Buff(Rs!Image.FieldSize - 1)<br> Buff = Rs!FieldName.GetChunk(0, Rs!Image.FieldSize) <br>把取出之 Buff 资料回存硬碟档案中<br>Dim FileHandle As Integer<br> FileHandle = FreeFile<br> Open "OutPutZipName" For Binary As #FileHandle<br> Put #FileHandle, , Buff <br> Close #FileHandle <br>虽然以上方法可以达成加入二进位资料(其实就是任何电脑资料的意思,包括执行程式。)的目的,但是老怪不鼓励大家这么做,因为过大的栏位有下列缺点:<br>过大的栏位资料会拖垮资料库的搜寻速度。 <br>不固定的资料栏位长度,降低网路资料传送的效率。 <br>放在栏位里的资料比单独的档案存放不安全,也就是说栏位资料比较容易毁损,而且只要一个栏位位置错误,就会导致所有 LongBinary 栏位的混乱,导致所有存放在此资料库里的二进资料一起报销。 <br>你无法检查二进资料存取是否完整,如果你放的是执行程式,万一部份资料遗失,你应该能想像它的后果。 <br>所以几乎所有的资料库书籍都告诫读者,宁可开个档案路径记录栏位,有需要再依栏位记录找到该档案加以处理。
<br>
<br><hr size=7 width=75%><p>
<a name="followups">Follow Ups:</a><br>
<ul><!--insert: 5519-->
</ul><!--end: 5519-->
<br><hr size=7 width=75%><p>
</body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?