- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Variável com BeginSQL
×
Linguagem de Programação ADVPL
Perguntas Variável com BeginSQL
- alex.magno
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 68
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22436
por alex.magno
Variável com BeginSQL foi criado por alex.magno
Pessoal, boa tarde
Estou tentando fazer uma query utilizando o BeginSQL só que quando utilizo uma variável no comando IN (SQL) dá erro.
A instrução que estou tentando executar é essa:
AND F2_VEND1 IN (%Exp:cFiltr%)
cFiltr é uma variável que recebe valores da seguinte maneira: '001','002'
Quando a query é montada pelo sistema, é adicionado aspas ' ' a mais gerando erro de SQL.
Ex.
Query gerada pelo sistema substituindo a variável:
AND F2_VEND1 IN (''001','002'')
percebe que o sistema adicionou aspas no início e no fim.
Tem como retirar isso?
Estou tentando fazer uma query utilizando o BeginSQL só que quando utilizo uma variável no comando IN (SQL) dá erro.
A instrução que estou tentando executar é essa:
AND F2_VEND1 IN (%Exp:cFiltr%)
cFiltr é uma variável que recebe valores da seguinte maneira: '001','002'
Quando a query é montada pelo sistema, é adicionado aspas ' ' a mais gerando erro de SQL.
Ex.
Query gerada pelo sistema substituindo a variável:
AND F2_VEND1 IN (''001','002'')
percebe que o sistema adicionou aspas no início e no fim.
Tem como retirar isso?
Por favor Acessar ou Registrar para participar da conversa.
- will3698
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 310
- Obrigados Recebidos: 1
10 anos 6 meses atrás - 10 anos 6 meses atrás #22450
por will3698
Respondido por will3698 no tópico Variável com BeginSQL
Ola boa tarde !
Como o Sr preencheu a cFiltr ?
caso tenha sido assim :
cFiltr := "'001','002'"
seria interessante tentar assim :
cFiltr := "001','002"
pra a função Exp, possa colocar as aspas do inicio e fim por ela mesma..
Eu já tive este problema e não consegui retirar essas aspas, ai tive que da um jeitinho brasileiro . kk
faça o teste
att
Como o Sr preencheu a cFiltr ?
caso tenha sido assim :
cFiltr := "'001','002'"
seria interessante tentar assim :
cFiltr := "001','002"
pra a função Exp, possa colocar as aspas do inicio e fim por ela mesma..
Eu já tive este problema e não consegui retirar essas aspas, ai tive que da um jeitinho brasileiro . kk
faça o teste
att
Ultima edição: 10 anos 6 meses atrás por will3698.
Por favor Acessar ou Registrar para participar da conversa.
- alex.magno
- Autor do Tópico
- Desconectado
- Membro Sénior
Menos
Mais
- Postagens: 68
- Obrigados Recebidos: 0
10 anos 6 meses atrás #22523
por alex.magno
Respondido por alex.magno no tópico Variável com BeginSQL
Willian, boa tarde
Obrigado pela resposta!
Eu encontrei uma outra alternativa que pode te ajudar.
Criei uma variável cQuery1 e adicionei o conteúdo do IN nesse formato '001','002'...
cQuery1 := "%" + cFiltr + "%"
Na query eu coloquei a variável da seguinte forma:
AND C5_VEND1 IN (%Exp:cQuery1%)
Funcionou!!!
Obrigado pela resposta!
Eu encontrei uma outra alternativa que pode te ajudar.
Criei uma variável cQuery1 e adicionei o conteúdo do IN nesse formato '001','002'...
cQuery1 := "%" + cFiltr + "%"
Na query eu coloquei a variável da seguinte forma:
AND C5_VEND1 IN (%Exp:cQuery1%)
Funcionou!!!
Por favor Acessar ou Registrar para participar da conversa.
- will3698
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 310
- Obrigados Recebidos: 1
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Variável com BeginSQL
Tempo para a criação da página:0.121 segundos