Erro ao executar o SQL
Bom dia amigos,
Estou com um problema quando executa o SQL.
Abaixo o comando.
conectaSQL.execultaSql("SELECT \n" +
"USERDATA.NTEXT2 AS LINK \n" +
"FROM USERDATA \n" +
"WHERE \n" +
"NTEXT2 LIKE '%"+ codigo +"%' and\n" +
"NTEXT2 NOT LIKE '%.CFG%' AND \n" +
"NTEXT2 NOT LIKE '%.DFT%' AND \n" +
"NTEXT2 LIKE '%http://engfravi/lib/%' ORDER BY TP_MODIFIED DESC");
O método da classe conexão.
public void execultaSql(String sql){ //Método para update e consulta.
try {
stm = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro no ExecultaSQL \n Entrar em contato \n" + ex);
}
}
Quando coloco essa variável me retornar o erro: com.microsoft.sqlserver.jdbc.SQLServerException: O conjunto de resultados não tem linha atual.
Quando passo o valor fixo não apresenta o erro.
A variável sempre esta com valor.
Estou com um problema quando executa o SQL.
Abaixo o comando.
conectaSQL.execultaSql("SELECT \n" +
"USERDATA.NTEXT2 AS LINK \n" +
"FROM USERDATA \n" +
"WHERE \n" +
"NTEXT2 LIKE '%"+ codigo +"%' and\n" +
"NTEXT2 NOT LIKE '%.CFG%' AND \n" +
"NTEXT2 NOT LIKE '%.DFT%' AND \n" +
"NTEXT2 LIKE '%http://engfravi/lib/%' ORDER BY TP_MODIFIED DESC");
O método da classe conexão.
public void execultaSql(String sql){ //Método para update e consulta.
try {
stm = conn.createStatement(rs.TYPE_SCROLL_INSENSITIVE,rs.CONCUR_READ_ONLY);
rs = stm.executeQuery(sql);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Erro no ExecultaSQL \n Entrar em contato \n" + ex);
}
}
Quando coloco essa variável me retornar o erro: com.microsoft.sqlserver.jdbc.SQLServerException: O conjunto de resultados não tem linha atual.
Quando passo o valor fixo não apresenta o erro.
A variável sempre esta com valor.
João Françozo
Curtidas 0
Respostas
Ronaldo Lanhellas
19/03/2015
Porque você não usa PreparedStatement ? É o mais ideal quando utilizamos parametrização nas queries.
GOSTEI 0
Thiago Santana
19/03/2015
Verdade Ronaldo!
Grande liberdade para sql injection.
Grande liberdade para sql injection.
GOSTEI 0
João Françozo
19/03/2015
Boa tarde Ronaldo,
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
GOSTEI 0
Jothaz
19/03/2015
Boa tarde Ronaldo,
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Acho que a primeira coisa é ter certeza que a expressão SQL roda.
Então jogue ela para um string imprima o conteúdo e tente executá-la no Management Studio, ai você terá certeza que a expressão esta ok.
Conselho a principio retire os \n.
GOSTEI 0
Ronaldo Lanhellas
19/03/2015
Boa tarde Ronaldo,
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Tenta assim:
conectaSQL.execultaSql("SELECT \n" +
"USERDATA.NTEXT2 AS LINK \n" +
"FROM USERDATA \n" +
"WHERE \n" +
"NTEXT2 LIKE '%"+ codigo +"%' and\n" +
"NTEXT2 NOT LIKE '%.CFG%' AND \n" +
"NTEXT2 NOT LIKE '%.DFT%' AND \n" +
"NTEXT2 LIKE '% + "http://engfravi/lib/" + %' ORDER BY TP_MODIFIED DESC");
Imagino que "codigo" será uma variável declarada anteriormente.
GOSTEI 0
Ronaldo Lanhellas
19/03/2015
Boa tarde Ronaldo,
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Também já fiz o teste com o PreparedStatement e apresenta o mesmo erro.
Att
João Antonio
Tenta assim:
conectaSQL.execultaSql("SELECT \n" +
"USERDATA.NTEXT2 AS LINK \n" +
"FROM USERDATA \n" +
"WHERE \n" +
"NTEXT2 LIKE '%"+ codigo +"%' and\n" +
"NTEXT2 NOT LIKE '%.CFG%' AND \n" +
"NTEXT2 NOT LIKE '%.DFT%' AND \n" +
"NTEXT2 LIKE '% + "http://engfravi/lib/" + %' ORDER BY TP_MODIFIED DESC");
Imagino que "codigo" será uma variável declarada anteriormente.
GOSTEI 0
Thiago Santana
19/03/2015
Remove esses "\n" não é um caracter legal a se utilizar em uma consulta SQL!
GOSTEI 0