2011-11-29 61 views
2

我正在創建一個SSIS作業,它將從SQL數據庫中提取圖片數據並將每張圖片寫入文件。我們有一個ID系統,將所有人員拍攝的圖像直接存儲到數據庫字段中,但我們將轉移到一個新系統,該系統將所有圖像作爲文件存儲在用戶ID的路​​徑中。使用VB.net或C#(SSIS)將圖像寫入磁盤

我已經創建了我的主數據流,可以獲取所有用戶和正確的路徑,但是我在編寫將創建圖像的腳本組件時遇到問題。我將圖像數據作爲一個字符串,但是如何使它在正確的路徑下出現在文件中?

這是我目前有:

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) 
    Dim filesys, folder 
    filesys = CreateObject("Scripting.FileSystemObject") 
    If Not filesys.FolderExists("E:\\test\\" + Row.Folder) Then 
     folder = filesys.CreateFolder("E:\\test\\" + Row.Folder) 
    End If 
End Sub 

我在尋找最終的路徑爲: 「E:\測試\」 + Row.Folder + 「\」 + Row.CardholderID +」。 JPG」。這將更改爲包含我們正在使用的程序所需的另一個文件夾。

我沒有真正附加,所以無論是vb.net還是c#(ssis 2008)對我來說都很好,因爲我不知道是否有偏好。

感謝您的任何幫助。

+1

對於使用腳本對象而不是內置的.net函數進行文件操作是否有特殊要求? –

+1

另外,當你說你有一個字符串中的圖像數據,我不確定你的實際意思。這是實際的二進制jpeg數據以某種方式存儲到字符串?它是什麼樣的格式?如果您有權訪問流或字節數組中的原始二進制數據而不是字符串,那麼使用它肯定會更容易。 –

回答

2
+0

我試圖推出自己的產品,因爲老實說,我不知道這些其他功能是否存在。我一直在使用SSIS一段時間,但主要是非常簡單的東西來洗牌不同系統/數據庫類型之間的數據。 感謝您的這些鏈接,他們會讓我得到我需要的地方! –

2

首先,讓我說,我認爲billinkc有一個更好的解決方案,但我想回答你的問題.net部分無論如何。

這是一個失去如何做你想要的例子。一旦你回答了我在評論中提出的問題,我會更詳細地更新它。

Dim dir As String = "e:\test\" & Row.Folder 

If Not IO.Directory.Exists(dir) Then 
    IO.Directory.CreateDirectory(dir) 
End If 
Dim fs As New IO.FileStream(IO.Path.Combine(dir, Row.CardHolderID & ".jpg"), IO.FileAccess.Write) 
Dim writer As New IO.BinaryWriter(fs) 
writer.Write(<Your data>) 

fs.Close() 
fs.Dispose() 
+0

謝謝,這對未來的商品也有用 –