Select com Update na Procedure ???
Olá galera tenho um procedure q se chama sp_pagina e nela eu tenho um select e um update so q quando eu chamo ela no meu codigo vb.net ela so funciona o select e ñ faz o update.
Se eu der um execute sp_pagina '4' ai sim ela da o select com o update.
O que pode esta acontecendo alguem pode me dar uma ajudar?
Segue logo abaixo a minha query.
IF @@s_setorpagina = '4'
Begin
select b.id_banner,
b.Nome_Banner,
b.Arq_Banner,
b.Url_banner,
bc.dt_final,
bc.id_sit,
bc.views,
b.id_ext,
bc.id_col
from con.dbo.tb_banner b WITH (NOLOCK)
inner join con.dbo.tb_banner_coluna bc WITH (NOLOCK)
on b.id_banner = bc.id_banner
inner join con.dbo.tb_extensao e WITH (NOLOCK)
on b.id_ext = e.id_ext
where bc.id_sit = 1
and bc.dt_final >getdate()
order by newid()update con.dbo.tb_banner_coluna
set views = isnull(bc.views,0) + 1
from con.dbo.tb_banner b WITH (NOLOCK)
inner join con.dbo.tb_banner_coluna bc WITH (NOLOCK)
on b.id_banner = bc.id_banner
inner join con.dbo.tb_extensao e WITH (NOLOCK)
on b.id_ext = e.id_ext
where bc.id_sit = 1
and bc.dt_final >getdate() ]
end
Fiquem com Deus!
Só Deus Salva O resto Faz BACKUP
Respostas
O Update está dentro do IF junto com o SELECT.
Era isso mesmo que você queria fazer ?
Você precisa mesmo passar o '4' na frente da Proc, pq ela espera esse parâmetro. Se você não passar o '4' ela nunca vai entrar nesse IF
e nunca executar o UPDATE.
Talvez o ideal seria utilizar um IF exclusivo para o Select(com valor '1' por exemplo) e um IF exclusivo para o UPDATE(com valor '2').
Ou além disso tudo, pelo menos coloque o UPDATE antes do SELECT.- Marcado como RespostaApostolo terça-feira, 3 de novembro de 2009 19:54
Todas as Respostas
O Update está dentro do IF junto com o SELECT.
Era isso mesmo que você queria fazer ?
Você precisa mesmo passar o '4' na frente da Proc, pq ela espera esse parâmetro. Se você não passar o '4' ela nunca vai entrar nesse IF
e nunca executar o UPDATE.
Talvez o ideal seria utilizar um IF exclusivo para o Select(com valor '1' por exemplo) e um IF exclusivo para o UPDATE(com valor '2').
Ou além disso tudo, pelo menos coloque o UPDATE antes do SELECT.- Marcado como RespostaApostolo terça-feira, 3 de novembro de 2009 19:54
- Ola Apostolo,
Fiquei na duvida do porque do SELECT antes do update, qual a finalidade disso?
Pois quando você executa um SELECT ele funciona como um return para a aplicação, ou seja, ignora abaixo.
O que você deseja fazer?
Atenciosamente
Thiago Dorneles - Olá muito obrigado pela dica, eu acho q eu ñ estou conseguindo passar o parametro para a variavel de entrada da procedure, estou fazendo da seguinte maneira:
Dim connBanner As New System.Data.SqlClient.SqlConnection
Dim cmdBanner As New System.Data.SqlClient.SqlCommand
Dim drBanner As Data.SqlClient.SqlDataReader
connBanner.ConnectionString = _
"Data Source=....."
cmdBanner.Connection = connBanner
cmdBanner.CommandText =
"SP_PRIMEIRA_PAGINA"
cmdBanner.CommandType = Data.CommandType.StoredProcedure
cmdBanner.Parameters.Clear()
cmdBanner.Parameters.Add(
New System.Data.SqlClient.SqlParameter("@@s_setorpagina ", Data.SqlDbType.Int)).Value = "4"
Mais parece q ñ esta passando alguem pode me ajudar?
Fiquem com Deus!
Só Deus Salva O resto Faz BACKUP - Tente:
cmdBanner.Parameters.AddWithValue("@@s_setorpagina ", "4") - Tb Ñ deu tem como eu imprimir este valor q eu estou passando para a variavel la na procedure?
Só Deus Salva O resto Faz BACKUP - Como não deu certo ? o que aconteceu ?
Mostra a Procedure.

