使用VB.net或c# (SSIS)将映像写入磁盘

本文关键字:映像 磁盘 SSIS net VB 使用 | 更新日期: 2023-09-27 18:16:12

我目前正在创建一个SSIS作业,该作业将从SQL数据库中提取图片数据并将每个图片写入文件。我们有一个ID系统,它将员工拍摄的所有图像直接存储到数据库字段,但我们将转向一个新系统,该系统将所有图像存储为用户ID路径中的文件。

我已经创建了获得所有用户和正确路径的主要数据流,但是我在编写将创建图像的脚本组件时遇到了麻烦。我有图像数据作为一个字符串,但我如何让它出去到一个文件在适当的路径?

这是我目前拥有的:

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:'test'"+ Row。文件夹+"'"+行。持卡人id +"。jpg"。这将更改为包含我们正在使用的程序所需的另一个文件夹。

我不是很依恋,所以vb.net或c# (ssis 2008)对我来说都很好,因为我不知道足够有偏好。

谢谢你的帮助

使用VB.net或c# (SSIS)将映像写入磁盘

您使用自己的解决方案而不是使用导出列转换的内置功能是否有原因

例子
  • http://www.bimonkey.com/2009/06/the-export-column-transformation/
  • http://f5debug.net/2011/04/25/sql-server-integration-services-ssis--part-44--export-column-transformations-in-ssis/
  • http://microsoft-ssis.blogspot.com/2011/08/exporting-images-with-ssis.html

首先,我想说我认为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()