2012-04-22 53 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服務器一般最佳實踐。我會建議查看將文件的位置存儲在數據庫中,並將文件存儲在某種文件系統中。