PreparedStatement - Substituir nome de campo

2 respostas
J

Seja o script:

PreparedStatement prstm = conBD.prepareStatement(“SELECT * FROM tbTabela ORDER BY ? ?”);

bem, eu tentei usar

prstm.setString(1, nome);
prstm.setString(2, DESC);

Bem, não funcionou, algo até um pouco óbvio. Dei uma vasculhada aqui no forum e na documentação da classe PreparedStatement, mas não consegui achar nada pra usar…

Alguém sabe me dizer como isso pode ser feito?

Abraços…

2 Respostas

P

cara…

Qual é o erro exibido ?

Acredito que apenas parametros que representem os campos da tabela podem ser usados dessa forma !
Nunca vi isso ser usado pra passagem de funções SQL

Caso vc precise que a ordenacao seja dinamica, vc poderia fazer um concatenção, por exemplo:

PreparedStatement prstm = conBD.prepareStatement("SELECT * FROM tbTabela ORDER BY ? " + DESC);

http://java.sun.com/j2se/1.4.2/docs/api/java/sql/PreparedStatement.html

[EDITADO]

Cara…
o nome do campo que vai servir como parametro para ordenação tbem não pode ser usado atraves “?” por substituição.
acho que apenas dados podem ser usado com “?”. Nome de tabela, campo , função, etc… não podem ser usados com o “?”, apenas atraves de concatenação.

J

Pois é cara, foi isso que eu percebi =\

Por isso criei esse tópico, então tem como mesmo não né??

Valeu ae, abração…

Criado 11 de agosto de 2006
Ultima resposta 11 de ago. de 2006
Respostas 2
Participantes 2