Ajuda no Activex script dts no sqlserver

0 respostas
snowblacksoul

Olá amigos

estou com um grande problema, preciso fazer uma aplicação no qual vou extrair dados do banco teradata e fazer um txt
para isso estou usando a DTS do sqlserver2005, só que tem algumas regras a seguir e não sei como fazer isso.
tipo preciso pegar na tabela algumas informações e colocar na variavel para usar num select
também preciso pegar o dia mes e ano do sistema, mês anterior e colocar na variáveis para usar no select
como fazer isso usando a DTS do swl server2005?!?!

tenho um código do activex script, mas nao esta me ajudando muito, não sei como ele colocou as variaveis globais como implementa isso alguém pode me dar um help por favor, é muito urgente!!

vou postar o código:

'Verifica se o processo já está em Execução
Option Explicit

Function Main()
	Dim oPkg, oDataPump, sSQLStatement
	Dim oPkg2, oDataPump2
	Dim oPkg3, oDataPump3
	Dim oPkg4, oDataPump4

	Dim Periodo, DtCorte, Ciclo, NArq, NDir, Conta
	
	Periodo	 = DTSGlobalVariables("periodo").Value
	Conta	 = left(Periodo,6)
	DtCorte	 = DTSGlobalVariables("DtCorte").Value

	DtCorte	 = left(DtCorte,4) & "-" & Mid(DtCorte,5,2) & "-" & right(DtCorte,2)

	Select Case right(Trim(Periodo),2)
		Case  "09"
		          Ciclo = "1"
		Case "12"
		          Ciclo = "2"
		Case "15"
		          Ciclo = "3"
		Case "18"
		          Ciclo = "4"
		Case "21"
		          Ciclo = "5"
		Case "24"
		          Ciclo = "6"
		Case "27"
		          Ciclo = "7"
		Case "01"
		          Ciclo = "8"
		Case "03"
		          Ciclo = "9"
		Case "06"
		          Ciclo = "10"
	End Select

	
	' Construir nova SQL
	sSQLStatement = "SELECT PQ_CT.ID_PC_PRODUTO_COMERCIAL AS PRODUTO_COMERCIAL," & chr(13) &_
				"PQ_CT.ID_UNICO_SISTEMA_LEGADO AS NRC," & chr(13) &_
				"PQ_CT.ID_SISTEMA_FONTE AS SISTEMA," & chr(13) &_
				"PQ_CT.ID_CONTA," & chr(13) &_
				"PQ_CT_HT.DT_INICIO (format 'yyyymmdd')(char(8)) DT_INI_PRQE," & chr(13) &_
				"PQ_CT_HT.DT_FIM (format 'yyyymmdd')(char(8)) DT_FIM_PRQE," & chr(13) &_
				"PQ_CT_HT.DT_INSTALACAO (format 'yyyymmdd')(char(8)) DT_INS_PRQE," & chr(13) &_
				"PQ_CT_HT.DT_RETIRADA (format 'yyyymmdd')(char(8)) DT_RET_PRQE," & chr(13) &_
				"PQ_CT_HT.ID_PRODUTO_COMERCIAL AS TERMINAL," & chr(13) &_
				"PQ_CT_HT.ID_LOCALIDADE," & chr(13) &_
				"SUBSTR(PQ_CT_HT.ID_SUBTP_PRODUTO_COMERCIAL,2,4) AS COD_SUBTP_PRODUTO_COMERCIAL," & chr(13) &_
				"PQ_CT_HT.ID_STATUS_PC," & chr(13) &_
				"PQ_CT_HT.ID_MOTIVO_PC," & chr(13) &_
				"CNTA.CD_CONTA," & chr(13) &_
				"CNTA.DT_ALTA (format 'yyyymmdd')(char(8)) AS DT_ALT_CNTA," & chr(13) &_
				"CNTA.DT_BAIXA (format 'yyyymmdd')(char(8)) AS DT_BAI_CNTA," & chr(13) &_
				"CNTA_HT.DT_INICIO (format 'yyyymmdd')(char(8)) AS DT_INI_CNTA," & chr(13) &_
				"CNTA_HT.DT_FIM (format 'yyyymmdd')(char(8)) AS DT_FIM_CNTA," & chr(13) &_
				"CNTA_HT.ID_STATUS_CONTA as ID_STATUS_CONTA," & chr(13) &_
				"CNTA_HT.IN_STOP_FATURAMENTO," & chr(13) &_
				"GRP_CNTA.CD_GRUPO_SEGMENTO_CONTA AS SEG_CNTA, " & chr(13) &_
				"'" & Conta & "' AS CONTA " & chr(13) &_
			"FROM	PW_VIEDB.PARQUE_CONTRATADO AS PQ_CT" & chr(13) &_
			"INNER JOIN	PW_VIEDB.PARQUE_CONTRATADO_HIST AS PQ_CT_HT" & chr(13) &_
				"ON PQ_CT_HT.ID_PC_PRODUTO_COMERCIAL = PQ_CT.ID_PC_PRODUTO_COMERCIAL" & chr(13) &_
			              "AND PQ_CT_HT.ID_PRODUTO_COMERCIAL NOT LIKE '0000000%'" & chr(13) &_
			              "AND '" & DtCorte & "' BETWEEN PQ_CT_HT.DT_INICIO AND PQ_CT_HT.DT_FIM" & chr(13) &_
			"INNER JOIN	PW_VIEDB.CONTA AS CNTA ON CNTA.ID_CONTA = PQ_CT.ID_CONTA" & chr(13) &_
			"INNER JOIN	PW_VIEDB.CONTA_HIST AS CNTA_HT" & chr(13) &_
				"ON CNTA_HT.ID_CONTA = CNTA.ID_CONTA" & chr(13) &_
				"AND '" & DtCorte & "' BETWEEN CNTA_HT.DT_INICIO AND CNTA_HT.DT_FIM" & chr(13) &_
				"AND CNTA_HT.ID_CICLO = " & Ciclo & chr(13) &_
			"INNER JOIN	PW_VIEDB.SUBSEGMENTO_CONTA AS SUB_CNTA" & chr(13) &_
				"ON SUB_CNTA.ID_SUBSEGMENTO_CONTA= CNTA_HT.ID_SUBSEGMENTO_CONTA" & chr(13) &_
			"INNER JOIN	PW_VIEDB.SEGMENTO_CONTA AS SEG_CNTA" & chr(13) &_
				"ON SEG_CNTA.ID_SEGMENTO_CONTA = SUB_CNTA.ID_SEGMENTO_CONTA" & chr(13) &_
			"INNER JOIN	PW_VIEDB.GRUPO_SEGMENTO_CONTA AS GRP_CNTA" & chr(13) &_
				"ON GRP_CNTA.ID_GRUPO_SEGMENTO_CONTA = SEG_CNTA.ID_GRUPO_SEGMENTO_CONTA" & chr(13) &_
			"GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21"



			' Get reference to the DataPump Task
			Set oPkg = DTSGlobalVariables.Parent
			Set oDataPump = oPkg.Tasks("DTSTask_DTSDataPumpTask_1").CustomTask
			oDataPump.SourceSQLStatement = sSQLStatement
			
			NDir = right(Trim(Periodo),2)			
			NArq = "D:\Publico\201106\" & NDir & "\Parque_contratado_" & Periodo & ".txt"
			Set oPkg2 = DTSGlobalVariables.Parent
			Set oDataPump2 = oPkg2.Tasks("DTSTask_DTSDataPumpTask_2").CustomTask
			oDataPump2.DestinationObjectName = NArq
		
		
			Set oPkg3 = DTSGlobalVariables.Parent
			Set oDataPump3 = oPkg3.Connections("Envia_para_arquivo_texto")
			oDataPump3.DataSource =  NArq
		

			
			
			


	        Main = DTSTaskExecResult_Success	       
End Function

Por favor se alguém puder me ajudar grato, já fui em vários foruns e ninguém ajudou!!!

Criado 29 de junho de 2011
Respostas 0
Participantes 1