posts - 41,  comments - 21,  trackbacks - 1
将文件以二进制流的形式存储到数据库中,如果文件较大,就必须分块处理,否则速度非常的慢。
ADO.Net把ADO中的AppendChunk和GetChunk功能给去掉了,
因此要将文件分块上传到数据库中或从数据库中分块下载文件就要只能用ADO,不能用ADO.Net(至少目前我的研究范围内如此)

下面是分块上传和下载的核心代码
Dim fs As New System.IO.FileStream(m_FilePath, IO.FileMode.Open, IO.FileAccess.Read)
Dim rs As ADODB.Recordset = New ADODB.Recordset
上传:   
   For j = 0 To ChunkNum - 1
        Dim pChunkBuffer(ChunkSize - 1) As Byte
        fs.Read(pChunkBuffer, 0, pChunkBuffer.Length)
        rs.Fields(wsManageGlobalParam.g_FieldFileData).AppendChunk(pChunkBuffer)
         pChunkBuffer = Nothing
      Next
下载:
   For j = 0 To ChunkNum - 1
      Dim pChunkBuffer(ChunkSize - 1) As Byte
      pChunkBuffer = rs.Fields(wsManageGlobalParam.g_FieldFileData).GetChunk(ChunkSize)
      fs.Write(pChunkBuffer, 0, pChunkBuffer.Length)
      pChunkBuffer = Nothing
    Next



posted on 2008-02-26 11:36 王者之魂 阅读(70) 评论(0)  编辑 收藏

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-05-27 17:13 编辑过


相关链接:
 

众 万
志 众
成 一
城 心

诚 心
祝 愿
中 震
国 区
人 百
民 姓
幸 安
福 康

QQ:13945133
MSN:yangguanjunmeteor@hotmail.com


<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

与我联系

搜索

 

常用链接

留言簿(1)

我参与的团队

我的标签

随笔档案(41)

友情链接

最新评论

阅读排行榜

评论排行榜

60天内阅读排行