Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Resgatar valores entre virgulas


evertonviana

Pergunta

Galera, boa tarde!

Em uma aplicação, salvei codigos separados por virgulas em um campo tipo MEMO. Porem a minha duvida é na hora de resgatar esses codigos e fazer consultas. Como faço para resgatar os codigos e fazer o sistema entender que cada virgula separa um codigo diferente?

Obrigado

Editado por evertonviana
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0
Galera, boa tarde!

Em uma aplicação, salvei codigos separados por virgulas em um campo tipo MEMO. Porem a minha duvida é na hora de resgatar esses codigos e fazer consultas. Como faço para resgatar os codigos e fazer o sistema entender que cada virgula separa um codigo diferente?

Obrigado

você pode fazer o seguinte

sVar = split(request("seucampo"),",")

sSQL = "select * from tabela 1= 1 or ( "

for i=0 to Ubound(sVar)
     sSQL = sSQL & " like campo '%"&sVar(i)&"%'  or  "
next

sSQL = sSQL & "like campo '%"&sVar(i)&"%' )"

set rs = conexao.execute(sSQL)

if not rs.eof then
    while not rs.eof
            response.write rs("campos")
    rs.movenest
    wend
end if

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0
use o split para quebrar a string

http://www.w3schools.com/vbscript/func_split.asp

Fernando, boa tarde!

primeiro desculpem a demora pra responder, estava super enrrolado...

Ok, consegui quebrar a String com o SPLIT, porem estou com duvida na consulta dos codigos. Vou tentar explicar melhor pra vocês entenderem o que preciso:

Essa parte do sistema, faz a baixa de determinada folha de pagamento gerada. Essa string que salvei anteriormente, delimitada por virgulas, contem codigos de identificação de registros do contas a pagar, referente a serviços que foram realizados pelo determinado funcionario.

Logo, quando dou baixa na folha de pagamento( ou seja, quando sinalizo para o sistema que paguei o funcionario), preciso que esses registros (do contas a pagar), sejam fechados(baixados) da mesma forma.

Porem não faço a minima ideia de como recuperar 1 codigo por vez(que esta delimitado por virgulas), para que possa executar a função de UPDATE no campo status de "Aberto" para "Quitado".

Estou aceitando sugestões, caso precise mudar a forma de pensamento...Ou uma solução para essa!

Obrigado pela ajuda

Editado por evertonviana
Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!

É por isso que eu gosto muito de ASP, as coisas tem "n" maneiras de funcionarem. Agradeço ao Fercosmig e ao Ricardo que tambem ajudaram, mas eu não saco nada de VB.Script, então ficou meio "salgado" pra mim...

Boa Bareta, sua idéia foi muito boa, funciona tipo uma loja Virtual(carrinho de compras), mudei o sistema para sua logica de pensamento e funcionou.

Pra ficar como base de consulta, o problema foi solucionado da seguinte maneira:

Tela que gera o resumo da folha salarial:

<%
'Faz uma limpeza antes de salvar, se houve alguma tentativa sem conclusão de gerar a mesma folha, apaga os registros da base temporaria
sql10 = "Select * from salario_os_temp where cod_referencia = '"&referencia&"'"
Set remover = Server.CreateObject("ADODB.Recordset")
remover.open sql10, conex, 3,3

                      while not remover.eof

                        if not remover.eof then
                        remover.delete
                        end if

                        remover.movenext
              wend

%>

<%while not mostra.eof%>
<%
    'recupera o numero da OS, pelo registro do contas a pagar
       os = mostra("os")

    'Com os numeros das Os, seleciona os registros
       sql3 = "select * from os where numero = "&os&""
       Set mostra2 = Server.CreateObject("ADODB.Recordset")
       mostra2.open sql3, conex2, 3,3

    'Abre conexão e salva na base temporaria o numero da OS e Numero de referencia dessa folha salarial
       sql5 = "select * from salario_os_temp"
       Set salva_temp = Server.CreateObject("ADODB.Recordset")
       salva_temp.open sql5, conex, 3,3

       salva_temp.addnew
       salva_temp("cod_referencia") = referencia 
       salva_temp("os") = mostra("os")
       salva_temp.update
%>

O mesmo codigo acima é aplicado para o contas a pagar, porem com select em itens de tipo "VALE"

Na hora de baixar, basta recuperar os itens dessas tabelas auxiliadoras(temporarias), que tenham o numero de referencia igual ao codigo de indexação do registro da folha salarial.

Abraço

Editado por evertonviana
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...