Ir para conteúdo

POWERED BY:

Arquivado

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

birobirosk8

selects doidos

Recommended Posts

geeente, peguei um banco de dados zuaaaaado aki no novo trampo...dai é o seguinte, em uma tabela só é ralacionado o segmento tipo:TABELAinformatica--computadores----desktops----servidoresperifericos--cabosgames--jogos----esporte----acao----morte--consoles----playstatio----xBoxetc etc etcdai esses produto tem seu codigo, e o codigo do pai, que é o produto q da origem a ele, tipo o codigo Pai do playstation é o codigo de consoles....oque eu estou tentando fazer é uma procedure que devolva todos os codigos relacionados a tal segmentopor exemplo, se eu passar o codigo de informatica para a SP queria q ele me retornasse tooodos os pro dutos contidos em informatica.oque fiz até agora é um select na procedure que seleciona os campos dependendo do codPai e os coloka em uma tabela temporaria, oque axo q falta fazer é tipo um loop, que pegue cada codigo dessa tabela temporaria e faça outo select para pegar os filhos.em asp até consegui fazer, mais é bem melhor fazer um sp pra isso, pq vai fikar bem mais rapido tbm....faloow gente, obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

geeeeeeeeente,pq isso nom funciona ???declare @codigo intdeclare @contador intdeclare @teste intdeclare @tabela table (campo1 int)set @codigo = 79select seg_int_codigo into #myTemp from tbl_segmento where seg_int_master = @codigoinsert into @tabela (campo1) values(select seg_int_codigo from #myTemp)

Compartilhar este post


Link para o post
Compartilhar em outros sites

insert into com select naum precisa do values

 

troque esta parte:

select seg_int_codigo into #myTemp from tbl_segmento where seg_int_master = @codigoinsert into @tabela (campo1) values(select seg_int_codigo from #myTemp)
por esta:

select seg_int_codigo into #myTemp from tbl_segmento where seg_int_master = @codigoinsert into @tabela (campo1) (select seg_int_codigo from #myTemp)

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeeeeu eriva...

 

entao, minha sp ficou assim

 

CREATE procedure sp_selSegmento @codSegmento intasdeclare @codigo intdeclare @hierarquia intdeclare @tabela table (campo1 int)set @codigo = @codSegmentoset @hierarquia = (select seg_int_hierarquia from tbl_segmento where seg_int_codigo = @codigo)	if exists (select seg_int_codigo from tbl_segmento where seg_int_master = @codigo)	begin		insert @tabela(campo1) (select seg_int_codigo from tbl_segmento where seg_int_master = @codigo and seg_int_hierarquia = @hierarquia+1)				if exists (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+2)		begin			insert @tabela(campo1) (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+2)						if exists (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+3)			begin				insert @tabela(campo1) (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+3)							if exists (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+4)				begin					insert @tabela(campo1) (select seg_int_codigo from tbl_segmento where seg_int_master in (select campo1 from @tabela) and seg_int_hierarquia = @hierarquia+4)				end			end		end	end	select campo1 as codSegmento from @tabela	returnGO

queria saber como pego a tabela retornada no asp, ja tentei uma par de nome mais num vai

 

sql = "sp_selSegmento 66"	set rs = objConn.execute(sql)	response.write rs("sei la oq")

falow, valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum seria isso, response.write rs("codSegmento") que você pegaria no asp, referente ao retorno da procure, select campo1 as codSegmento from @tabela penultima linha da procedure (antes do Return) ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

é, entao....era pra ser neh, no query analyzer retorna a tabela e talz, no asp véio não hahaha

Compartilhar este post


Link para o post
Compartilhar em outros sites

coloca um set nocount on no inicio da procedure, executa o query analyser no modo texto (ctrl+T) verifica se não aparece nenhuma mensagem antes do resultado do seu select, se aparecer mensagens, warnings isso pode atrapalhar o ado de pegar o resultado, eh fodah..., por isso o uso do set nocount on, pra tirar mensagens de contagem de registros

 

CREATE procedure sp_selSegmento @codSegmento intasset nocount ondeclare blablablablablablablabla...

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

aeee, ja era, consegui...era um tal de:set nocount onset nocount offque eu nem sei pra q serve hauhauhua, valeuw

Compartilhar este post


Link para o post
Compartilhar em outros sites

falai birobirosk8,

putz postamos na mesma hora hein 11:58 AM ...heheh

 

sobre o SET NOCOUNT... quando ON ele mostra o numero de registros afetados e quando OFF ele naum mostra isso.

veja o exemplo do Books OnLine:

USE pubsGO-- Display the count message.SELECT au_lname FROM authorsGOUSE pubsGO-- SET NOCOUNT to ON and no longer display the count message.SET NOCOUNT ONGOSELECT au_lname FROM authorsGO-- Reset SET NOCOUNT to OFF.SET NOCOUNT OFFGO

essas @#$#@*@#$% de mensagens dos registros afetados que aparecem antes do resultado do select ferram o ado

 

 

falows véio,

t++

Compartilhar este post


Link para o post
Compartilhar em outros sites

puuutz velhinho, pode cre, postamos na mesma hora...agora sim, entendi pra q serve esse trem....brigado ae de novo hein

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.