2012-08-16 70 views
1

我們有一個數據庫,其中圖像作爲圖像列類型存儲在表中。我們會定期啓動一個進程並檢查圖像是否已更新。檢查SQL Server中的圖像字段是否已更改

過程將:

  1. 從源下載文件通過HTTP
  2. 檢查,如果該文件是從數據庫版本
  3. 更新的數據庫,如果不同的必要

我我不知道如何去做第二步。我將如何檢查文件是否不同?

編輯:

如何正確使用會檢查DATALENGTH圖像的大小?

+2

您是否嘗試過散列兩個圖像?在SQL Server中,您應該可以使用[HashBytes](http://msdn.microsoft.com/zh-cn/library/ms174415(v = sql.100).aspx)來處理最多8000字節的塊。你可以添加一個CLR函數來處理一個圖像中的圖像,並確保你在兩幅圖像上使用相同的哈希。 – HABO 2012-08-17 02:24:53

+0

@HABO:不幸的是,圖像顯着大於8000字節。 – 2012-08-17 15:40:43

回答

0
  1. 下載的文件作爲byte[]陣列
  2. 從SQL服務器中檢索BLOB字段的DATALENGTH
    • SELECT DATALENGTH(Content) AS ItemLength ...
  3. 比較兩個。如果他們是平等的,那麼他們是相同的圖像:
    • byte[].Length == BlobLength(long
相關問題