SSIS----用7z.zip解压文件后导入数据库.(二)

接上步.也就是成功后(表示有今天的文档,具体就看上篇的代码)那么按题意就是要删除表里的数据.然后解压.
但是大家都能看到.我们是在遍历文件.不可能每次都删除文档.这里我用了个变量,来按他只删除一次文档.在这里,我在把这个总体图发一次.
(可能有人会问,为什么删除数据不放前面.因为不能保证是否有今天文档.其实也有一个方法.就是用时序容器的事务性.当遍历文件失败后因事务就会还原删除的数据.可惜我不会设置)
在这,我先把那线的含义给说下.绿色表示成功,红色表示失败,蓝色表示完成(不管是成功还是失败)
线上有个框框上有fx表示是表达式.可以看到线1和线2上都要求成功和表达式,那可以看一下.
线1图:
线2图:(看到下面的多个条件约束没.那里是OR,对应上面图的虚线.呵呵,大家应该猜到了.线3图也是OR)
线3图:
先说下IsHaveData是什么,这个值默认是FASLE,但是他如果经过transfer data成功后,会执行一段指令.很简单,
就是把IsHaveData设为TRUE;那这里三线就表示,如果有今天的数据,那么如果IsHaveData是FASLE,表示没有
插入数据.那么他就会删除数据(此时走线1,然后走线3).然后解压文件.再插入数据后,他就会再去走线路2,直接解压.
而线3和线2为Or的关系,表示只要有一样完成,就开始解压文件.
解压文件是利用组件执行处理工作.如下设置相应属性.
1.关联要处理的应用程序.
2.设置程序要的执行命令参数.
    那么,在这里就已经把文件给解压了(希望有人不要问我那个OutCommand是如何来的).那下一步就是transfer data,在上面双击后
如下图所示.
 
在上面对应的有数据来源.数据转换.数据目的地三个部分.
连接管理器里我们看前二个.一个是数据目的的数据库连接.另一个是数据来源的数据.
在这里我们解压后的文件是csv文档.所以我们选择是一般文档连接.
如下图
可以知道,在运行过程中,我们是不知道档案名称,所以我们也是根据前面指令动态生成的档案名称.就是设置表达式里的connectionString里的属性.
但是在这之前我们程序没有运行,OutFileName没值,我们可以先在上面指定一个和OutFileName文件里同样式属性的文件,用来设置相关资料.而在运行时
他会自动把档案名称根据表达式给换成OutFileName,还是很强大的.
下面的SQL连接就不说了,自己搞搞就全知道了.
  然后我们把数据来源上的连接连到我们刚刚设置好的mrpexecl,而目的地连接上面的SQL连接.然后你选择要他们资料行的对应关系就好.
 
下面第三页简单的说下文件A的处理(和B的差不多一样,就说下不一样的部分.)然后说下文件备份和删除.

vb 用WinrAR压缩和解压文件

03-09

Dim Source As String '源文件rnDim Target As String '目标文件rnDim mystr As StringrnDim retvalrnrnPrivate Sub Command1_Click()rnmystr = App.Path & "\WinRAR\WinRAR.exe"rnSource = txt1.Text '源文件的位置rnTarget = txt2.Text '存放压缩文件的位置rnmystr = mystr & "a" & Target & "" & Sourcern'调用RAR文件压缩rnretval = Shell(mystr, vbHide)rnMsgBox "文件压缩成功完成", 64, "提示信息"rnEnd SubrnrnPrivate Sub Command2_Click()rn'选择压缩后文件保存路径rn'Common1.ShowSavern'Text2.Text = Common1.FileNamernIf shlShell Is Nothing Thenrn Set shlShell = New Shell32.Shellrn End Ifrn Set shlFolder = shlShell.BrowseForFolder(Me.hwnd, "请选择文件夹", BIF_RETURNONLYFSDIRS)rn If Not shlFolder Is Nothing Thenrn ' MsgBox shlFolder.Items.Item.Path '测试rn txt2.Text = shlFolder.Items.Item.Pathrn End IfrnEnd SubrnrnPrivate Sub Command3_Click()rn'选择压缩文件路径rn'Common1.ShowOpenrnIf shlShell Is Nothing Thenrn Set shlShell = New Shell32.Shellrn End Ifrn Set shlFolder = shlShell.BrowseForFolder(Me.hwnd, "请选择文件夹", BIF_RETURNONLYFSDIRS)rn If Not shlFolder Is Nothing Thenrn ' MsgBox shlFolder.Items.Item.Path '测试rn txt1.Text = shlFolder.Items.Item.Pathrn End Ifrn'Text1.Text = Common1.FileNamernrnEnd SubrnrnPrivate Sub Command4_Click()rnEndrnEnd SubrnrnPrivate Sub Command5_Click()rnmystr = App.Path & "\WinRAR"rnIf Dir(mystr) <> " " ThenrnMsgBox "文件存在" & mystrrnEnd IfrnSource = txt3.Text '原压缩文件的位置rnIf Dir(Source) <> " " ThenrnMsgBox "文件存在" & txt3.TextrnEnd IfrnTarget = txt4.Text '存放解压文件的位置rnIf Dir(Target) <> " " ThenrnMsgBox "文件存在" & TargetrnEnd Ifrnmystr = mystr & " X " & Source & " " & Targetrn'调用RAR文件解压缩rnMsgBox "mystr" & mystrrnretval = Shell(mystr, vbHide)rnrn'MsgBox "解压缩成功完成", 64, "提示信息"rn'Call ShellExecute(Me.hwnd, "open", "C:\Program Files\WinRAR\WinRAR.exe", Source, " ", SW_SHOW)rnEnd SubrnrnPrivate Sub Command6_Click()rnEndrnEnd SubrnrnPrivate Sub Command7_Click()rnCommon1.ShowOpenrntxt3.Text = Common1.FileNamern'If shlShell Is Nothing Thenrn' Set shlShell = New Shell32.Shellrn' End Ifrn' Set shlFolder = shlShell.BrowseForFolder(Me.hwnd, "请选择文件夹", BIF_RETURNONLYFSDIRS)rn' If Not shlFolder Is Nothing Thenrn' ' MsgBox shlFolder.Items.Item.Path '测试rn' txt3.Text = shlFolder.Items.Item.Pathrn' End IfrnEnd SubrnrnPrivate Sub Command8_Click()rn'Common1.ShowSavern'Text4.Text = Common1.FileNamernIf shlShell Is Nothing Thenrn Set shlShell = New Shell32.Shellrn End Ifrn Set shlFolder = shlShell.BrowseForFolder(Me.hwnd, "请选择文件夹", BIF_RETURNONLYFSDIRS)rn If Not shlFolder Is Nothing Thenrn ' MsgBox shlFolder.Items.Item.Path '测试rn txt4.Text = shlFolder.Items.Item.Pathrn End IfrnEnd Subrn模块中rnPublic shlShell As Shell32.ShellrnPublic shlFolder As Shell32.FolderrnPublic Const BIF_RETURNONLYFSDIRS = &H1rnrnPublic Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongrnrnPublic Const SW_HIDE = 0rnPublic Const SW_SHOW = 5rn用shell 调用WinRAR 可是出现 “没有文件被解压”这样的错误 ,还有就是 在另一个文件夹名称中含有空格 就会出现“没有找到压缩文件” 怎么解决?rn希望高手、老师们 给点指导rn表示真诚的感谢 论坛

没有更多推荐了,返回首页