USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  SQL Server - Ajuda com uma Lista de Valores
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 22/07/2005 15:49 hs            
Ola, amigos
 
Tenho o seguinte problema: Tenho em uma SP um parametro q eh uma lista de numeros. Eu passo eles em uma variavel String, e os itens da lista sao separados por virgulas.
Preciso usar essa lista em um Update, na clausula Where da seguinte forma:
 
UPDATE tabela SET campo = valor WHERE chave IN (LISTA)
 
Mas o sql server nao encherga o valor da variavel Lista como uma lista de valores para o IN, como 01,02,03,05 , mas sim como um unico valor string, tipo '01,02,03,05'....
 
Minha duvida eh como fazer para o poder usar essa lista como parametro no IN
 
Ou entao se existe outra forma de passar uma lista de valores como parametro, sem ser em uma String....
 
Amigos, agradeço qualquer ajuda...


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 23/07/2005 00:22 hs         
Grave antes a lista em uma tabela temporária e use um select na cláusula IN
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 25/07/2005 08:47 hs            
Já resolvi...
 
O código, pra quem interessar:
________________________________________________________________________________________________
        DECLARE @CODIGO AS INT
        DECLARE @FLAG AS INT
        DECLARE @ERR AS INT
        SET @FLAG = 0
        SET @ERR = 0
       
        WHILE @FLAG = 0
                BEGIN
                       
                        IF CHARINDEX( ',', @LISTA) = 0
                                BEGIN
                                        SET @CODIGO = CAST(@LISTA AS INT)
                                        SET @FLAG = 1
                                END
                        ELSE
                                BEGIN
                                        SET @CODIGO = SUBSTRING( @LISTA, 1, CHARINDEX( ',', @LISTA)-1)
                                        SET @LISTA = RIGHT( @LISTA, LEN(@LISTA) - CHARINDEX( ',', @LISTA))
                                END
                       
                        UPDATE sUsuario SET
                                usuAtivo = 1
                        WHERE usuCodigo = @CODIGO
                                AND cliCodigo = @CLIENTE
                       
                        IF @@ERROR <> 0
                                BEGIN
                                        SET @ERR = 1
                                        BREAK
                                END
                       
                END
________________________________________________________________________________________________
 
Isso roda dentro de uma SP no SQL Server... faz um loop pelos itens da lista, e atualiza um por um... assim resolvel meu problema...
 
Flw!


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

TÓPICO EDITADO
   
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página