Variable value is not changing in Script Task
Hi, I'm trying to change a variable in Script Task and it's not working. I included the variable in the Read/Write variables list. This is the code I'm using: Public Sub Main() Dim vlsDataInicio As String Dim vlsDataFim As String Dim vlsSQLRelatorio As String = Dts.Variables("User::SQLRelatorio").Value vlsDataInicio = Microsoft.VisualBasic.DateAndTime.DateAdd(DateInterval.Day, -365, System.DateTime.Now).ToString vlsDataInicio = "'" + Microsoft.VisualBasic.Mid(vlsDataInicio, 1, 10) + "'" vlsDataFim = System.DateTime.Now.ToString vlsDataFim = "'" + Microsoft.VisualBasic.Mid(vlsDataFim, 1, 10) + "'" vlsSQLRelatorio = "SELECT '3110202' conta, extract(year from LAST_DAY(to_date(" + vlsDataFim + ",'dd/mm/yyyy'))) ano, " vlsSQLRelatorio = vlsSQLRelatorio + "extract(month from LAST_DAY(to_date(" + vlsDataFim + ",'dd/mm/yyyy'))) mes, " vlsSQLRelatorio = vlsSQLRelatorio + "i.iunicodempresa codemp, i.iuninomeempresa empresa, sum(x.VALOR) valor " vlsSQLRelatorio = vlsSQLRelatorio + "FROM (SELECT sum(M.ALMVALORMENSALIDADE) VALOR FROM ALUNMENS M, ALUNSITU C " vlsSQLRelatorio = vlsSQLRelatorio + "WHERE(M.ALUCOD = C.ALUCOD) AND M.ESPCOD = C.ESPCOD AND C.ASISITUACAO = 'C' " vlsSQLRelatorio = vlsSQLRelatorio + "AND EXISTS ( SELECT 1 FROM CONVMENS C, CONVENIO O WHERE(C.CONCOD = O.CONCOD) " vlsSQLRelatorio = vlsSQLRelatorio + "AND O.SGCONTCODIGOCTB = '3110202' AND C.MENANO = M.MENANO AND " vlsSQLRelatorio = vlsSQLRelatorio + "C.MENMES = M.MENMES AND C.ALUCOD = M.ALUCOD AND C.ESPCOD = M.ESPCOD ) " vlsSQLRelatorio = vlsSQLRelatorio + "AND TO_DATE(M.MENMES||'/'||M.MENANO,'MM/YYYY') BETWEEN C.ASIDATAINICIAL " vlsSQLRelatorio = vlsSQLRelatorio + "AND C.ASIDATAFINAL AND ((TO_DATE(M.MENMES||'/'||M.MENANO,'MM/YYYY') " vlsSQLRelatorio = vlsSQLRelatorio + "BETWEEN to_date(" + vlsDataInicio + ",'dd/mm/yyyy') AND " vlsSQLRelatorio = vlsSQLRelatorio + "LAST_DAY(to_date(" + vlsDataFim + ",'dd/mm/yyyy')) AND " vlsSQLRelatorio = vlsSQLRelatorio + "TRUNC(C.ASIDATACONTABIL) <= LAST_DAY(TO_DATE(M.MENMES||'/'||M.MENANO, 'MM/YYYY'))) " vlsSQLRelatorio = vlsSQLRelatorio + "OR TRUNC(C.ASIDATACONTABIL) BETWEEN to_date(" + vlsDataInicio + ",'dd/mm/yyyy') " vlsSQLRelatorio = vlsSQLRelatorio + "AND LAST_DAY(to_date(" + vlsDataFim + ",'dd/mm/yyyy'))) AND " vlsSQLRelatorio = vlsSQLRelatorio + "TO_DATE(M.MENMES||'/'||M.MENANO, 'MM/YYYY') <= LAST_DAY(to_date(" + vlsDataFim + ",'dd/mm/yyyy')) " Dts.Variables("User::SQLRelatorio").Value = vlsSQLRelatorio.ToString MessageBox.Show(Dts.Variables("User::SQLRelatorio").Value) Dts.TaskResult = ScriptResults.Success End Sub Thanks, Levogiro.Benedito R. Almeida Filho Business Intelligence
May 16th, 2011 9:12am

Is it giving an error? (if so provide error) Is vlsSQLRelatorio.ToString filled with a value? (messagebox that value too)Please mark the post as answered if it answers your question | My SSIS Blog: http://microsoft-ssis.blogspot.com
Free Windows Admin Tool Kit Click here and download it now
May 16th, 2011 9:34am

Hi, SSISJoost, I've figured out what was the problem. The variable was being evaluated as an expression. When I changed the property to False it worked ok. Thanks, Levogiro.Benedito R. Almeida Filho Business Intelligence
May 16th, 2011 9:42am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics