Ajuda com parametros do tipo INT
Boa tarde Galera...
Estou fazendo uma tela onde um dos parametros é do tipo INTEIRO!
Ex:
select * from pedidos
where codigo in (:cod)
o problema é: no parametro :cod tenho que poder passar varios numeros separados por virgula...
Porém se no delphi coloco do tipo AsInteger naum aceita por causa das virgulas e se passo como AsString vai dar erro de comparação com o campo inteiro!
Alguem sabe como resolver isso sem ter que trocar o SQL desta linha e sim via parametro mesmo?
Estou fazendo uma tela onde um dos parametros é do tipo INTEIRO!
Ex:
select * from pedidos
where codigo in (:cod)
o problema é: no parametro :cod tenho que poder passar varios numeros separados por virgula...
Porém se no delphi coloco do tipo AsInteger naum aceita por causa das virgulas e se passo como AsString vai dar erro de comparação com o campo inteiro!
Alguem sabe como resolver isso sem ter que trocar o SQL desta linha e sim via parametro mesmo?
Km Sistemas
Curtidas 0
Respostas
Jair N.
17/05/2011
Boa Tarde, poderia mas terá que modificar para atender sua necessidade.
a Exemplo:
SELECT * FROM pedidos -- substituir por:
where codigo in (:cod) -- remove esta clausula
WHERE (codigo = SOME (ARRAY[:p0, :p1, :p2, :p3, :p4, :p5]));
-- quando for passar os parametros não passar como string;
-- na passagem do parâmetro caso dts.Params[0].AsInteger := x --- número do código inteiro ... ou no caso de uma função pode ser uma passagem por array do tipo INT[] ok entendeu?
GOSTEI 0
Km Sistemas
17/05/2011
Na verdade Não entendi muito bem não...
vou utilizar dentro do delphi!
oque faz esse SOME?
e como vou passar todos os valores separados por virgula se parametro do tipo integer não permite virgula...
vou utilizar dentro do delphi!
oque faz esse SOME?
e como vou passar todos os valores separados por virgula se parametro do tipo integer não permite virgula...
GOSTEI 0
Km Sistemas
17/05/2011
Resolvido!
vou utilizar desta forma:
vou utilizar desta forma:
select * from pedidos where :cod like %||cast(codigo as varchar)||%
GOSTEI 0