将文件以二进制流的形式存储到数据库中,如果文件较大,就必须分块处理,否则速度非常的慢。
ADO.Net把ADO中的
AppendChunk和Get
Chunk功能给去掉了,
因此要将文件分块上传到数据库中或从数据库中分块下载文件就要只能用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) 编辑 收藏