Select com parametrizado na sintax IN (?) tem como ?

Delphi

14/06/2005

Como fazer exemplo :
select clientes.* from clientes
where clientes.codcliente = 1


Usando parametros seria :
select clientes.* from clientes
where clientes.codcliente = :codcliente

[b:bd5e5c7aeb]E dentro do delphi eu chamaria no objeto query[/b:bd5e5c7aeb] query1.parambyname(´codcliente´).AsInteger := 1; [b:bd5e5c7aeb]E por fim retornaria o meu cursor desejado com o parametro [/b:bd5e5c7aeb]


[b:bd5e5c7aeb]Até aki eu sei fazer o problema é no exemplo seguinte ![/b:bd5e5c7aeb]
select clientes.* from clientes where clientes.codcliente in (1,2,3)


Como usar o parametro do sql para otimizar o Select no lugar dos valores (1,2,3), pois qnd mudo diretamente no texto do select, eu tenho q dar 1 prepare novamente para otimizar novamente, nao tem como ser parametrizado ?

[b:bd5e5c7aeb]Tipo[/b:bd5e5c7aeb]

select clientes.* from clientes where clientes.codcliente in (:pCodClientes)


E como passar o valor dos parametro pelo delphi no exemplo acima ? query1.parambyname(´pCodClientes´).AsString := ´1,2,3´ //n dar certo ja tentei query1.parambyname(´pCodClientes´).AsArray := [1,2,3] //n existe Afinal como fazer para passar o valor ?



[list:bd5e5c7aeb]Essa é uma duvida velha e todos falam em alterar o conteudo do Selectsql diretamente, mais novamente eu peco a otimizacao da Select no SGDB por fazer isso, pois qnd mudar d novo, vou ter q preparar a sql novamente para otimizar e com parametros é diferente como vcs sabem[/list:u:bd5e5c7aeb]

[b:bd5e5c7aeb]Obs : SGDBR = Oracle 9i ou SGDB = Firebird 1.5[/b:bd5e5c7aeb]



Kristian

Kristian

Curtidas 0

Respostas

Rhosaka

Rhosaka

14/06/2005

Usa a clausula ´containing´ da uma procurada no forum q vc acha exemplos


GOSTEI 0
Kristian

Kristian

14/06/2005

Usa a clausula ´containing´ da uma procurada no forum q vc acha exemplos


[b:f219332c5a]containing[/b:f219332c5a] nao faz uso d indice, eu quero otimizar, e nesse caso vai lascar mais ainda.

Qnd usamos parametros a instrucao DML fica otimizada a receber somente o valor do parametro

olhei o q vc me falou e ajudou em partes valeu


GOSTEI 0
POSTAR