【问题标题】:Get import text file mod time with SQL Enterprise Manager DTS使用 SQL Enterprise Manager DTS 获取导入文本文件修改时间
【发布时间】:2013-04-28 17:29:08
【问题描述】:

我正在使用数据转换服务 (DTS) 功能或 SQL Enterprise Manager 2000 运行预定的文本文件转储从遗留系统导入数据库。

作为导入的一部分,我已经使用 VBS 进行了一些转换,以处理文本文件转储中的一些不一致。大多数转换脚本是自动生成的,看起来像这样:

****************************************
' Visual Basic Transformation Script
' Copy each source column to the 
' destination column
****************************************

Function Main()

    DTSDestination("db_column_title1") = DTSSource("txt_column_title1")
    DTSDestination("db_column_title2") = DTSSource("txt_column_title2")
    DTSDestination("db_column_title3") = DTSSource("txt_column_title3")
    DTSDestination("db_column_title4") = DTSSource("txt_column_title4")
    Main = DTSTransformStat_OK

End Function

我想将文本文件的最后修改时间作为附加列包含在数据库中。我已经在数据库表import_date 中创建了列,但我不知道如何将文本文件的最后一次修改时间引用到这个 VBScript 中。

基本上我想添加这样的东西:

DTSDestination("import_date") = DTSSource.LastModTime

我试过用谷歌搜索这样的属性,但我没有找到任何东西,VBS 和 DTS 对我来说仍然很模糊,所以我不确定是否有可能获取文本文件 mod time 作为参考进入脚本。

【问题讨论】:

    标签: sql-server vbscript import dts


    【解决方案1】:

    解决方案是在生成的转换脚本中使用 ActiveX 脚本对象,这使我可以直接引用导入的文本文件。我可以阅读 mod 时间表单,而不是尝试为 DTSSource 查找 ModTime 属性:

    ****************************************
    ' Visual Basic Transformation Script
    ' Copy each source column to the 
    ' destination column
    ****************************************
    
    Function Main()
    
        // create a direct reference to the import file
        Dim oFSO
        Dim importFile
    
        Set oFSO = CreateObject("Scripting.FileSystemObject")
        Set importFile = oFSO.GetFile("\\server\file\path")
    
        // get mod time from the reference
        lastMod = importFile.DateLastModified
    
        DTSDestination("db_column_title1") = DTSSource("txt_column_title1")
        DTSDestination("db_column_title2") = DTSSource("txt_column_title2")
        DTSDestination("db_column_title3") = DTSSource("txt_column_title3")
        DTSDestination("db_column_title4") = DTSSource("txt_column_title4")
    
        // add the data here
        DTSDestination("import_date") = lastMod
    
        Main = DTSTransformStat_OK
    
    End Function
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2015-05-15
      • 2013-05-15
      相关资源
      最近更新 更多