Autor Tópico: Problemas com variável global  (Lida 1765 vezes)

wetsite

  • Iniciante
  • **
  • Mensagens: 57
  • Aprender e aprimorar sempre...
    • Email
Problemas com variável global
« Online: Agosto 19, 2010, 05:57:32 pm »
Prezado Srs,

Estou com o seguinte problema, criei um um filtro que gera pra mim três variável e redireciona para uma grid, nessa grid o sql recebe essas variável para o funcionamento. As variáveis aparecem apenas em parte do código, coloquei em modo debug e aparece assim:

SELECT LICENCA_INICIO, LICENCA_TERMINO, LICENCA_FRACAO, (
       CASE WHEN LICENCA_TERMINO < "[liCENCA_TERMINO]"
    THEN (
       CASE WHEN "[liCENCA_INICIO]" > LICENCA_INICIO
    THEN DATEDIFF( LICENCA_TERMINO, "[liCENCA_INICIO]" ) +1
    ELSE LICENCA_DIAS  END)
    ELSE DATEDIFF( "[liCENCA_TERMINO]", LICENCA_INICIO ) +1 END)
AS dias
FROM cad_licenca
WHERE LICENCA_CIDADE = "739001"
   AND ((LICENCA_INICIO BETWEEN "2010-07-06"  AND "2010-07-11")
   OR (LICENCA_TERMINO BETWEEN "2010-07-06" AND "2010-07-11"))


Como vcs podem ver, a variável que contém as dadas aparecem no final do código, mas dentro dos Cases, aparece com [variavel].

O que poderia ser isso e como resolver.

De já agradeço.
« Última modificação: Agosto 20, 2010, 11:15:59 am por wetsite »
Welington Santos

Yuri Esteves

  • Administrator
  • Expert
  • *****
  • Mensagens: 818
    • Email
Re: Problemas com variável global
« Responder #1 Online: Agosto 22, 2010, 03:09:34 pm »
A variavel utilizada para as funções case utilizadas são de Datas? ou qualquer valor que colocar vai ficar dessa forma?

Qual o Banco de dados utilizado nessa aplicação?

wetsite

  • Iniciante
  • **
  • Mensagens: 57
  • Aprender e aprimorar sempre...
    • Email
Re: Problemas com variável global
« Responder #2 Online: Agosto 22, 2010, 09:27:58 pm »
Prezado Yuri,

Inicialmente agradeço a atenção e ajuda. Uso banco de dados mysql.

Na verdade, "[liCENCA_INICIO]" e "2010-07-06", são a mesma coisa, porém na parte de cima do código a data não veio e sim o código "[liCENCA_INICIO]" e na parte debaixo a data veio como deveria. A mesma coisa vale para liCENCA_TERMINO.

Assim, respondendo sua pergunta, as funções case utilizadas são de Datas, na verdade as mesmas mostradas na parte debaixo do script, ou seja, na parte de cima do código a variável veio e abaixo não veio.

Não consigo resolver, peço ajuda.
Welington Santos

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Problemas com variável global
« Responder #3 Online: Agosto 23, 2010, 08:59:25 am »
pode colar o SQL original aqui?

wetsite

  • Iniciante
  • **
  • Mensagens: 57
  • Aprender e aprimorar sempre...
    • Email
Re: Problemas com variável global
« Responder #4 Online: Agosto 23, 2010, 09:27:57 am »
Bom dia Harold,

Agradeço pela ajuda, segue SQL:

SELECT LICENCA_INICIO, LICENCA_TERMINO, LICENCA_CIDADE, (
       CASE WHEN LICENCA_TERMINO < "[liCENCA_TERMINO]"
    THEN (
       CASE WHEN "[liCENCA_INICIO]" > LICENCA_INICIO
    THEN DATEDIFF( LICENCA_TERMINO, "[liCENCA_INICIO]" ) +1
    ELSE LICENCA_DIAS  END)
    ELSE DATEDIFF( "[liCENCA_TERMINO]", LICENCA_INICIO ) +1 END)
AS DIAS
FROM cad_licenca
WHERE LICENCA_CIDADE = "[liCENCA_CIDADE]"
   AND ((LICENCA_INICIO BETWEEN "[liCENCA_INICIO]"  AND "[liCENCA_TERMINO]")
   OR (LICENCA_TERMINO BETWEEN "[liCENCA_INICIO]" AND "[liCENCA_TERMINO]"))
Welington Santos

Haroldo

  • Expert
  • *****
  • Mensagens: 6268
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re: Problemas com variável global
« Responder #5 Online: Agosto 23, 2010, 10:22:18 am »
Mude o nome da váriável global, adquira um padrão, algo como uma sigla_nomevar.
Evite usar nome de variáveis iguais as das colunas de suas tabelas, o sc internamente pode criar variáveis com o mesmo nome.

wetsite

  • Iniciante
  • **
  • Mensagens: 57
  • Aprender e aprimorar sempre...
    • Email
Re: Problemas com variável global
« Responder #6 Online: Agosto 23, 2010, 12:35:07 pm »
Prezado Horold,

A verdade é que usei o mesmo nome do campo uma vez que antes tentei usar apenas como variável comum {variável} e como não funcionou, fui tentando de outras formas. Já tentei também colocar nomes diferentes mas com poucoa alteração como [variável1] e assim por diante. Até agora não funcionou. Farei novos testes, observando suas orientações e e posto o resultado aqui. Desde já agraço a ajuda.
Welington Santos