vilmarbr Postado Agosto 25, 2009 Denunciar Share Postado Agosto 25, 2009 Estou com um problema numa stored procucedure t-sql do sybase, mas é muito parecido com t-sql da microsoft.A procedure deveria a cada alteração de produto , zerar um contador e recomeçar a montagem de data, a partir de 01.01.1900.Veja o trecho que está dando problema no cursor: /*Data Início Vigência*/ if @cd_prod <> @cd_prod_old begin select @cd_prod_old = @cd_prod select @contador = 1 select @dt_ini_vig_prod = '01.01.1900' end else begin select @contador = @contador + 1 if datalength(convert(varchar(2),@contador)) = 1 select @dt_ini_vig_prod = '0' + convert(varchar(2),@contador) + '.01.1900' else select @dt_ini_vig_prod = convert(varchar(2),@contador) + '.01.1900' end update #ba60_ba30_prod_t set dt_ini_vig_prod = @dt_ini_vig_prod where (cd_ps = @cd_prod_old) and (tp_clc_prst = @tp_clc_prst) and (cd_ind_cm_sld_dvr = @cd_ind_cm_sld_dvr) and (pc_desc_prod = @pc_desc_prod)Só está me atualizando os 2 primeiros produtos:cd_ps tp_clc_prst cd_ind_cm_sld_dvr pc_desc_prod dt_ini_vig_prod ----------- ----------- ----------------- ------------ --------------- 195 13 0 0.00 01.01.1900 195 1 511 0.00 02.01.1900 Estou há mais de 3 horas vendo isto e não resolvo!!!!! Alguém já passou por isto ?? Alguma dica de como resolver ????Observo que eu uso cursores e tabelas temporárias.Estou tratando campos que vem valor nulo.Enfim, estou usando todas boas práticas de programação, mas isto não está saindo .Stored procedure completa e resultados seguem em anexo.http://www.vilmarbro.com.br/cartoes_tele/f...ultado_proc.zipGrato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vilmarbr Postado Agosto 25, 2009 Autor Denunciar Share Postado Agosto 25, 2009 solução: http://www.vbmania.com.br/pages/index.php?...rUltimaPagina=1 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vilmarbr
Estou com um problema numa stored procucedure t-sql do sybase, mas é muito parecido com t-sql da microsoft.
A procedure deveria a cada alteração de produto , zerar um contador e recomeçar a montagem de data, a partir de 01.01.1900.
Veja o trecho que está dando problema no cursor:
/*Data Início Vigência*/
if @cd_prod <> @cd_prod_old
begin
select @cd_prod_old = @cd_prod
select @contador = 1
select @dt_ini_vig_prod = '01.01.1900'
end
else
begin
select @contador = @contador + 1
if datalength(convert(varchar(2),@contador)) = 1
select @dt_ini_vig_prod = '0' + convert(varchar(2),@contador) + '.01.1900'
else
select @dt_ini_vig_prod = convert(varchar(2),@contador) + '.01.1900'
end
update #ba60_ba30_prod_t
set
dt_ini_vig_prod = @dt_ini_vig_prod
where
(cd_ps = @cd_prod_old) and
(tp_clc_prst = @tp_clc_prst) and
(cd_ind_cm_sld_dvr = @cd_ind_cm_sld_dvr) and
(pc_desc_prod = @pc_desc_prod)
Só está me atualizando os 2 primeiros produtos:
cd_ps tp_clc_prst cd_ind_cm_sld_dvr pc_desc_prod dt_ini_vig_prod
----------- ----------- ----------------- ------------ ---------------
195 13 0 0.00 01.01.1900
195 1 511 0.00 02.01.1900
Estou há mais de 3 horas vendo isto e não resolvo!!!!!
Alguém já passou por isto ?? Alguma dica de como resolver ????
Observo que eu uso cursores e tabelas temporárias.
Estou tratando campos que vem valor nulo.
Enfim, estou usando todas boas práticas de programação, mas isto não está saindo .
Stored procedure completa e resultados seguem em anexo.
http://www.vilmarbro.com.br/cartoes_tele/f...ultado_proc.zip
Grato.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.