Olá,
estou com problemas ao tentar gerar uma consulta sql utilizando o comando between.
Estou utilizando o ECLIPSE. Preciso que o sistema entenda que os valores que devem ser comparados no between venham de duas variáveis auxiliares, onde uma representa o código inicial e a outro código final.
Segue abaixo o trecho de código:
String e = "1";
String d = "50";
int f = Integer.parseInt(e);
int g = Integer.parseInt(d);
Statement smt = con.createStatement();
String sql = "SELECT * FROM CLIENTES WHERE CLICOD BETWEEN f AND g";
O erro que está sendo apresentado é o seguinte:
java.sql.SQLException: [Microsoft] [SQL Server Native Cliente 10.0] [SQL Server] Invalid column name ‘f’
Qual é a melhor forma de eu proceder para conseguir buscar esses dados do intervalo dentro de variáveis ???
Grato desde já,
Eduardo Nascimento Mariano
tenta assim:
String e = “1”;
String d = “50”;
int f = Integer.parseInt(e);
int g = Integer.parseInt(d);
Statement smt = con.createStatement();
String sql = "SELECT * FROM CLIENTES WHERE CLICOD BETWEEN "+ f + " AND " + g;
Cara vai ser bem dificil isso ai funcionar mesmo, pois o seu SQL esta com a letra f e g.
bom acho que vc pode fazer o seguinte:
String sql = “SELECT * FROM CLIENTES WHERE CLICOD BETWEEN ? AND ?”;
PreparedStatement stm = conn.prepareStatement(sql);
//Aqui vc está dizendo que no primeiro interrogação vc quer que seja atribuido o valor de f.
strm.setInt(1, f);
//Aqui vc está dizendo que no segundo interrogação vc quer que seja atribuido o valor de g.
strm.setInt(2, g);
e pede pra rodar a consulta!!!
leonardo só lembrando que a solução que vc passou é passivel de ataques tipo SQL Injection!!
Oi,
Leia isso: http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html
seu código ficaria mais ou menos assim:
String e = "1";
String d = "50";
int f = Integer.parseInt(e);
int g = Integer.parseInt(d);
PreparedStatement ps = con.prepareStatement("SELECT * FROM CLIENTES WHERE CLICOD BETWEEN ? AND ?");
ps.setInt(1, f);
ps.setInt(2, g);
ResultSet rs = ps.executeQuery():
Repare que os parâmetros são as “?” e não o nome de suas variáveis.
Rafael,
Muito Obrigado !!!
Funcionou !!!