在SSIS和C#语言中使用脚本任务,如何转换创建文件的DTS ActiveX脚本,然后附加完整的文件名
我正在尝试将DTS进程转换为SSIS,我希望转换一个DTS脚本任务,该任务创建3个文件(只有在有数据要写入时才创建文件),然后将完整文件名附加到变量,然后将该变量复制到全局变量。由于我是新手,我想一步一步的演示,如果可能的话,请,请,请帮助…谢谢。下面是创建两个而不是三个文件的DTS脚本示例:在SSIS和C#语言中使用脚本任务,如何转换创建文件的DTS ActiveX脚本,然后附加完整的文件名,c#,ssis,activex,dts,C#,Ssis,Activex,Dts,我正在尝试将DTS进程转换为SSIS,我希望转换一个DTS脚本任务,该任务创建3个文件(只有在有数据要写入时才创建文件),然后将完整文件名附加到变量,然后将该变量复制到全局变量。由于我是新手,我想一步一步的演示,如果可能的话,请,请,请帮助…谢谢。下面是创建两个而不是三个文件的DTS脚本示例: Function Main() DIM dbConnection, rsGetFileDetails, rsGetInfo DIM fsoFileSystem, fExportFile DIM sGrou
Function Main()
DIM dbConnection, rsGetFileDetails, rsGetInfo
DIM fsoFileSystem, fExportFile
DIM sGroupCode, sSequenceNumber, sFileIdentifier, FileName
DIM sLineItem, sAttachmentPaths
DIM FileLocation
sAttachmentPaths = ""
FileLocation = DTSGlobalVariables("FileDestPath").Value
'****************************************************
'*********Connect to Database******************
'****************************************************
SET dbConnection = CreateObject( "ADODB.Connection" )
dbConnection.Provider = "sqloledb"
dbConnection.Properties("Data Source").Value = "Server"
dbConnection.Properties("Initial Catalog").Value = "Database"
dbConnection.Properties("Integrated Security").Value = "1234"
dbConnection.Open
'*******************************************************************
'***********GET TRACE ALERT DELIST DATA************
'*******************************************************************
SET fsoFileSystem = CreateObject( "Scripting.FileSystemObject" )
SET rsGetInfo = CreateObject( "ADODB.recordset" )
sql = "SELECT tblExample1.IDNumber, tblExample2.First_Name, tblExample3.Main_Name FROM tblExample1 INNER JOIN tblExample2 ON tblExample1.IDNumber = tblExample2.Entity_ID_Number WHERE (tblExample1.IDNumber = '2') AND (Process_Date IS NULL)"
rsGetInfo.Open sql, dbConnection
IF rsGetInfo.EOF THEN
ELSE
FileName = "MyFileName_" & Replace( Date() , "/" , "")
'//Create the file
SET fExportFile = fsoFileSystem.CreateTextFile( FileLocation & FileName & ".txt", true )
DTSGlobalVariables("FileLocation").Value = FileLocation & FileName & ".txt"
rsGetInfo.MoveFirst
DO WHILE NOT rsGetInfo.EOF OR rsGetInfo.BOF
sLineItem = ""
sLineItem = rsGetInfo("IDNumber") & vbtab & rsGetDelistInfo("First_Name") & vbtab & rsGetInfo("Main_Name")
fExportFile.Write(sLineItem & vbcrlf)
rsGetInfo.MoveNext
LOOP
'// Set Attachment Path
sAttachmentPaths = FileLocation & FileName & ".txt"
END IF
'*******************************************************************
'***********GET DEFAULT DELIST DATA************
'*******************************************************************
SET fsoFileSystem = CreateObject( "Scripting.FileSystemObject" )
SET rsGetInfo = CreateObject( "ADODB.recordset" )
sql = "SELECT Contract_No FROM tblfunny WHERE (funnyNumb = 1) and (Process_Date IS NULL)"
rsGetInfo.Open sql, dbConnection
IF rsGetInfo.EOF THEN
ELSE
FileName = "MyFileName_" & Replace( Date() , "/" , "")
'//Create the file
SET fExportFile = fsoFileSystem.CreateTextFile( FileLocation & FileName & ".txt", true )
DTSGlobalVariables("FileLocation").Value = FileLocation & FileName & ".txt"
rsGetInfo.MoveFirst
DO WHILE NOT rsGetInfo.EOF OR rsGetInfo.BOF
sLineItem = ""
sLineItem = rsGetInfo("Contract_No")
fExportFile.Write(sLineItem & vbcrlf)
rsGetInfo.MoveNext
LOOP
'// Set Attachment Path
IF sAttachmentPaths = "" THEN
sAttachmentPaths = FileLocation & FileName & ".txt"
ELSE
sAttachmentPaths = sAttachmentPaths & "; "& FileLocation & FileName & ".txt"
END IF
END IF
Main = DTSTaskExecResult_Success
End Function
我不想无济于事,但你不能指望人们只是为你重新编写代码。另一方面,如果你已经尝试自己做了,但是你遇到了特定的编码问题或错误消息,那么你当然可以发布它们,这样人们可以提供建议。我添加了代码,这样可以提供更好的图片。我确实尝试了一种方法,使第一部分工作,但我不知道如何创建第二个文件?获取默认的退市数据…我使用了一个脚本任务来设置文件名,然后是一个文件系统任务来复制文件和数据泵,来泵送该文件中的数据,第一个任务向该文件添加三个列,但问题是第二个任务使用相同的平面文件和平面文件连接,并且只复制一个列。这将附加在第一个中填充的其余数据,并且只添加一个冒号…“合同号”。没有截图很难解释,但我希望可以理解……如果你还在,你想解决的问题是什么?我看到了您希望完成的步骤,但在不了解问题的全部范围的情况下,我不愿意提供答案。Hi billinkc,我已经解决了问题,不再需要解决方案。不过还是要谢谢你:)