[英]Photos as Varbinary(MAX) in SQL Server 2012 causes error 502753 in Access 2010
我有一個帶有 SQL Server 2012 后端的 Access 2010 odbc 前端。 我的圖像( .bmp
)存儲為Varbinary(Max)
。 當我在 Access 表單中使用綁定的對象框架插入圖像時,該圖像會完美地顯示在表單和報告中。 我有大量的圖片要帶入 SQL,所以我在 SQL Server Management Studio 中使用了以下代碼:
UPDATE dbo.Photos_Observations
SET [Photo] = (SELECT BulkColumn
FROM Openrowset( Bulk '\\serverIP\servername\020.BMP', Single_Blob) as MyImage)
WHERE PhotoTableID =391
這很有效,所有 600 多張圖片現在都在 SQL Server 中。 但是我以這種方式添加的那些不會出現在我的 Access 表單或報告中。 當我單擊綁定對象框架時,出現錯誤號 502753“Microsoft Access 與 OLE 服務器或 ActiveX 控件通信時出現問題。”
為什么它以一種方式工作而不是另一種方式? 我怎樣才能讓圖像顯示?
看起來您使用 T-SQL 將原始二進制圖像數據直接從 BMP 文件批量插入到 VARBINARY 列中。 因此,這些圖像沒有在通過 Access 窗體上的綁定對象框架插入圖像時添加的“OLE 包裝器”。
有關自動插入“OLE 包裝”圖像的方法,請參閱我對相關問題的回答。 (這有點笨重,但仍然比手工完成要好。)
另一種方法是使用圖像控件而不是綁定對象框架,並將圖像存儲為原始二進制數據而不是“OLE 包裝”對象。 這越來越成為處理存儲在數據庫本身中的圖像的首選方式。 (OLE 對象可能很麻煩,尤其是在使用 Access 以外的應用程序時。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.