Ae pessoal,
To com um problema com uma sql de pesquisa que contém a funcao LIKE.
A sql é a seguinte:
‘-------------
xSQL ="SELECT * FROM DISCO WHERE NM_DISCO LIKE " + "’" + txtLabel.getText() + "’";
'------------
Eu uso ela dentro de uma clausula if para indicar quando a intencao do usuario for pesquisar. O problema é que o LIKE não funciona com os asteristicos, nem com a famosa %. Se eu não colocar * ou % na sql e na txtLabel eu colocar o nome certinho do item ele me retorna o item e seus valores nas textboxes correspondentes certinho, no entanto a intenção é retornar vários valores que ao clickar em um btnProximo passe para o proximo registro.
Fiz um método que colocar dentro de um vetor tds os valores para todos os registros retornados da busca e depois os separo redistribuindo os valores em seus respectivos tetboxes. O metodo é o seguinte:
//Retorna registros achados pela SQL
//Parametros de Entrada:
//pSQL: SQL de pesquisa
//registro: Vetor que irá armazenar os campos dos registros
public void pesquisarRegistro(String pSQL, Vector <String> registro){
int i;
int j;
System.out.println("SQL de pesquisa: " +pSQL);
try{
Statement st= conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if (st.execute(pSQL)){
j=1;
while (st.getResultSet().next()){
if (!st.getResultSet().isAfterLast()){
for (i=0; i<st.getResultSet().getMetaData().getColumnCount();i++){
registro.add(st.getResultSet().getString(i+1));
System.out.println("Campos do vetor: " +st.getResultSet().getString(i+1));
}
j++;
}
}
}else{
registro.clear();
}
}catch(SQLException e){
System.out.println(e.getMessage());
registro.clear();
}
}
Se alguém puder me dar um help ficarei muito grato…