Problemas com banco Informix

2 respostas
Chileno

E ai galera tudo bem?

O problema é o seguinte to (tentando) desenvolvendo um sisteminha e começando com um login. O problema é que aqui eu to usando um banco chamado informix (IBM).
Quando eu tento fazer um select no banco ele me retorna a seguinte msg

exception

javax.servlet.ServletException: java.sql.SQLException: An illegal character has been found in the statement.

org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:286)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.sql.SQLException: An illegal character has been found in the statement.

com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)

com.informix.jdbc.IfxSqli.a(IfxSqli.java:3208)

com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518)

com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)

com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)

com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)

com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)

com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)

com.informix.jdbc.IfxPreparedStatement.(IfxPreparedStatement.java:168)

com.informix.jdbc.IfxSqliConnect.h(IfxSqliConnect.java:5918)

com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1999)

br.com.IURD.jdbc.dao.LoginDAO.verifica(LoginDAO.java:57)

br.com.IURD.action.LoginAction.execute(LoginAction.java:30)

org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)

org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)

org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)

org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)

org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

root cause

java.sql.SQLException

com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:373)

com.informix.jdbc.IfxSqli.E(IfxSqli.java:3523)

com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353)

com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269)

com.informix.jdbc.IfxSqli.executePrepare(IfxSqli.java:1153)

com.informix.jdbc.IfxPreparedStatement.e(IfxPreparedStatement.java:318)

com.informix.jdbc.IfxPreparedStatement.a(IfxPreparedStatement.java:298)

com.informix.jdbc.IfxPreparedStatement.(IfxPreparedStatement.java:168)

com.informix.jdbc.IfxSqliConnect.h(IfxSqliConnect.java:5918)

com.informix.jdbc.IfxSqliConnect.prepareStatement(IfxSqliConnect.java:1999)

br.com.IURD.jdbc.dao.LoginDAO.verifica(LoginDAO.java:57)

br.com.IURD.action.LoginAction.execute(LoginAction.java:30)

org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)

org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)

org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)

org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)

org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)

org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)

javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

Minha clase que faz o select

public List<Login> verifica(Login login) throws SQLException {
			try{			
			String sql = "select nome, tipo from usuariosIURD where login =`"+ login.getNome()+ "` and senha = `"+login.getSenha()+"";			
			System.out.println(sql);
			PreparedStatement stmt = connection.prepareStatement(sql);

                 //stmt.setString(1, login.getNome());			
	         //stmt.setString(2, login.getSenha());
		
			ResultSet rs = stmt.executeQuery();
			
			List<Login> user = new ArrayList<Login>();
			while (rs.next()) {	
				Login l = new Login();
				l.setNome(rs.getString("nome"));
				l.setTipo(rs.getString("tipo").charAt(0));
				user.add(l);
		}
			rs.close();
			stmt.close();
			return user;
			}catch (SQLException e) {
				System.out.println(e);
			}
			return null;
		}

Alguem pode me dar uma idéia do que pode estar acontecendo? Quando eu debugo ele para no

fiz um sysout pra testar o sql no banco e deu certo trazendo o registro direitinho

Obrigado pela ajuda

2 Respostas

wagne23

É impressão minha ou as suas aspas simples estão trocadas, está assim ` mas acho que deve ser assim ’

Chileno

Isso mesmo. Deu certinho

Criado 16 de abril de 2010
Ultima resposta 28 de abr. de 2010
Respostas 2
Participantes 2