Utilizar Cast

Firebird

18/04/2006

Pessoal estou com problema em usar Cast.

O que eu quero é utilizar o nome de uma coluna dinamica. Por exemplo. A coluna será formada por um parâmetro.


[/code]
Coluna = ´Campo´ || strParametro;

select ...........
from ...........
where
cast(:Coluna as float) between :intinicio1 and :intfinal1

O problema está ai, quando tento fazer isso dá pau. Se eu colocar o nome da coluna normal, cast(´campo1´ as float) funciona. 

Alguem tem alguma dica, o campo é do tipo stirng.

Obrigado.




Yallebr

Yallebr

Curtidas 0

Respostas

Thomaz_prg

Thomaz_prg

18/04/2006

Você está usando qual bd?? Seu SQL está dentro de uma trigger ou procedure??

Porque, se vc estiver usando Firebird 1.5 ou superior, pode usar EXECUTE STATEMENT:

coluna = ´Campo´ || :strParametro;
comando = ´select ... from ... where cast(´||:Coluna||´ as float) between ´||:intinicio1||´ and ´||:intfinal1;
execute statement :comando into ...;



GOSTEI 0
Yallebr

Yallebr

18/04/2006

É FB 1.5.2
Stored Procedure.

O que vem a ser EXECUTE STATEMENT. Eu achamo esse comando através de um SQL ou de dentro da Stored Procedure?

Obrigado!


GOSTEI 0
Thomaz_prg

Thomaz_prg

18/04/2006

O que vem a ser EXECUTE STATEMENT.

É um comando interno do firebird, que executa uma instrução a partir de uma variável ou valor (char ou varchar).

Por exemplo, se eu quiser listar todos os codigos e nomes de uma tabela, eu poderia fazer assim:

cmd = ´select codigo, nome from tabela´;
for execute statement :cmd into :var1, :var2 do 
  suspend;


Eu achamo esse comando através de um SQL ou de dentro da Stored Procedure?

De dentro da SP. No lugar do select que vc estava chamando.


GOSTEI 0
Yallebr

Yallebr

18/04/2006

Funcionou obrigado.


GOSTEI 0
POSTAR