2012-04-22 98 views
0

我想在sqlite数据库中存储大文件(超过100MB)。我注意到,它的表现并不好。 我是否必须将文件存储在本地文件夹中,还是必须重写我的代码?SQLite:用于存储大文件的BLOB?

 Shared Sub BlobToFile(ByVal Blob As Byte(), ByVal file As String) 
     Dim MyData() As Byte = Blob 
     Dim K As Long 
     K = UBound(MyData) 
     Dim fs As New FileStream _ 
     (file, FileMode.Create, _ 
      FileAccess.Write) 
     fs.Write(MyData, 0, K) 
     fs.Close() 
     MyData = Nothing 
     K = Nothing 
    End Sub 
    Shared Function FileToBlob(ByVal Filepath As String) As Byte() 
     Dim fs As New FileStream _ 
    (Filepath, FileMode.Open, _ 
     FileAccess.Read) 
     Dim MyData(fs.Length) As Byte 
     fs.Read(MyData, 0, fs.Length) 
     fs.Close() 
     Return MyData 
    End Function 
'Then I Do this: 
Dim x As New Sqliteparameter With {.Name ="@file", .value=Filetoblob("C:\Testfile.zip"), .DbType.Binary} 
Dim y As New SqliteCommand With {.Commandtext = "INSERT INTO FILES(File) Values(@file);"} 
y.Parameters.add(x) 
y.Executenonquery() 

THX

回答

2

这是不是大文件存储在数据库中,除非有对它的支持,如与MSSQL服务器一般最佳实践。我会建议查看将文件的位置存储在数据库中,并将文件存储在某种文件系统中。