Comando SQL direto do BD

2 respostas
Z

O nome da tabela tem que ser literal, não pode ser bind variable (colocar ? e passar como parametro como você fez).

2 Respostas

R

Boa tarde,
Estou fazendo um sistema de controle de estoque com o MYSQL, e para otimizar o código e facilitar a manutenção estou colocando os comandos SQL em uma tabela (nomecomando, tabelaalvo e textocomando).
Recupero o o comando SQL da tabela (select * from ? where ? = ?) e incremento o mesmo utilizando o PreparedStatement

PreparedStatement ps = con.prepareStatement(tcomando); ps.setString(1, tabalvo); ps.setString(2, campo1); ps.setString(3, valor1);
Até aqui tudo certo, porém, os valores das variáveis (tabalvo, campo1 e valor1) são incrementados no comando SQL com aspas, o que deixa o comando inválido para o MYSQL.
Comando após icremento das variáveis: com.mysql.jdbc.PreparedStatement@1027b4d: select * from 'usuarios' where 'username' = 'rodrigo'
Alguém poderia me ajudar ? OBRIGADO

R

Obrigado Zeh,

Substitui o nome da tabela literal e funcionou, porém, o campo1 não é encontrado e o resultado é vazio.
Tenho que colocar o campo1 também literal?

Mais uma vez obrigado!

Criado 11 de outubro de 2006
Ultima resposta 11 de out. de 2006
Respostas 2
Participantes 2