passagem de parametros : extract( year from data)

Firebird

19/11/2010

Ola Pessoal

  Help !

--->encrenca com  a passagem de parametro de ano

tenho um 
a)    edit1.text -> entrade um valor equivalente ao ano  --> ex 2010
b)    uma query no command.text do CDdatset :
            ->select   nome, data  from  tabela1  where  extract(year from data)=2010
          
=====tudo ok -- funciona bem

c)    mesma  query no command.text do CDdatset, agora com passagem de parametro
            ->select   nome, data  from  tabela1  where  extract(year from data):=wdatda
                params[0].asinteger:=strtoint(edit1.text)

======query vazia, isto é, não le o ano de 2010 passado no campo edti1.text

  qual o problema amigos?

 

  cilmar




Cilmar Rosa

Cilmar Rosa

Curtidas 0

Respostas

Carlos Phelippe

Carlos Phelippe

19/11/2010

Amigo,
não seria assim?

select   nome, data  from  tabela1  where  extract(year from data) = :wdatda
GOSTEI 0
Elton Rosa

Elton Rosa

19/11/2010

Como o colega CARLOS postou, o correto é usar assim mesmo :" select nome, data from tabela1 where extract(year from data) = :wdatda "Lembrando que não pode haver espaço depois dos 02 pontos.
GOSTEI 0
Cilmar Rosa

Cilmar Rosa

19/11/2010

Ola

 Perdoe-me, passei o sinal trocado.

  o correto

a)    edit1.text -> entrade um valor equivalente ao ano  --> ex 2010
b)    uma query no command.text do CDdatset :
            ->select   nome, data  from  tabela1  where  extract(year from data)=2010
          
=====tudo ok -- funciona bem

c)    mesma  query no command.text do CDdatset, agora com passagem de parametro
            ->select   nome, data  from  tabela1  where  extract(year from data)=:wdatda
                params[0].asinteger:=strtoint(edit1.text)

======query vazia, isto é, não le o ano de 2010 passado no campo edti1.text

 a questao continua a mesma

    cilmar
GOSTEI 0
Wilson Junior

Wilson Junior

19/11/2010

- Verifique se o "strtoint(edit1.text)" está retoprnando o valor corretamente (no seu exemplo "2010");
- Verifique as propriedades do seu parâmentro criado "wdata".

Espero ter colaborado.
GOSTEI 0
Cilmar Rosa

Cilmar Rosa

19/11/2010

Ola

  Não estou conseguindo resolver esta parada.

  repetindo

  Montei um Datamodule para consulta e relatorios no DBGRID

  uso DBexpress

  faço a conexão via Sqlquery + DProvider e crio as consultas SQL no Client Dataset via command. text.

  Com isso faço varios relatorios com o mesmo trio SQL+DP+CD

 Tudo funciona oK.

Ao montar uma consulta sql usando extract (year from data) :
1-se passar direto o ano : extract (year from data)=2010
   funciona legal
2- se passar o ano como parametro ( tipo integer)

   nao lê o resultado correto

  o que pode estar ocorrendo?

 
 cilmar
 
GOSTEI 0
POSTAR