Erro ao executar o SQL

Java

19/03/2015

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.
João Françozo

João Françozo

Curtidas 0

Respostas

Ronaldo Lanhellas

Ronaldo Lanhellas

19/03/2015

Porque você não usa PreparedStatement ? É o mais ideal quando utilizamos parametrização nas queries.
GOSTEI 0
Thiago Santana

Thiago Santana

19/03/2015

Verdade Ronaldo!
Grande liberdade para sql injection.
GOSTEI 0
João Françozo

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
GOSTEI 0
Jothaz

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


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

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


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

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


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

Thiago Santana

19/03/2015

Remove esses "\n" não é um caracter legal a se utilizar em uma consulta SQL!
GOSTEI 0
POSTAR