簡體   English   中英

從.Net訪問Microsoft Access 2003和2007 BLOB字段

[英]Accessing Microsoft Access 2003 and 2007 BLOB fields from .Net

我需要能夠從Access 2003和Access 2007中提取BLOB。Access2003將BLOB存儲為“ OLE對象”,而Access 2007為您提供了另一個選項“附件”。 主要區別在於可以將多個附件添加到一行,而每個“ OLE對象”數據類型只能有一個BLOB。

我必須能夠在不使用互操作的情況下執行此操作,因為我無法強制安裝Office的依賴關系。 剩下的就是DAO或ADO。 因此,我編寫了使用這兩種技術的代碼,以將BLOB從具有嵌入式不同類型文件類型的負載的測試數據庫中拉出。

我的問題是,Access似乎將嵌入式文件包裝為某種類型的元數據。 最終結果是,一旦提取文件,該文件將不再相同,並且由於“損壞”而不能被關聯的應用程序打開。 Access在此元數據中存儲諸如原始文件名之類的內容。 我需要能夠從文件中剝離該元數據,以使文件處於原始狀態。

有一些黑暗的巫毒術可以做到嗎? 關於該主題的文獻很少。 任何幫助,將不勝感激。

提前致謝。

這是因為OLE對象像Access中的“圖像”一樣存儲。 這會導致性能問題,也可能導致像您這樣的問題。 為了解決這些限制,Microsoft在Access 2007/2010上引入了附件字段,而無需OLE服務器來運行內容。 每個記錄的附件應多於一個文件,由MS-Access在后台自動管理。 也許您應該使用附件或為SQL Server,MY-SQL,Firebird更改數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM