Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

snowblacksoul

Activex script

Recommended Posts

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!!

 

tenho esse código do activex script

 

'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


 

preciso entender o que esta fazendo, mas gostaria de fazer o seguinte

pegar algumas variaveis como ano mes e dia atual e mes anterior

olhar na tabela e pegar algumas informações e colocar nas variáveis para usar num sql como fazer isso?

 

 

grato a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.