Unclosed string literal....ObjRS.....erro

12 respostas
A

Pessoal, sou iniciante em java, e estou analisando um codigo que esta retornando uma msg de erro

Andei olhando umas documentacoes, mas parece que sai de um erro e cai em outro…

a linha é esta abaixo:

..
	Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery( "SELECT * FROM pedido ORDER BY id Desc LIMIT 1");
   varPED=ObjRS.Fields("id");
   ObjRS.Execute("Select * from fornecedores f, pedidos b, notafiscal c where a.id_fornecedor=b.id_fornecedor and b.id_pedidos=" & varPED ");

o erro é esse:

avax.servlet.ServletException: Unable to compile class for JSP: 
An error occurred at line: 51 in the jsp file: /pedido/nota_fiscal.jsp
String literal is not properly closed by a double-quote
48: 	ResultSet rs = stmt.executeQuery( "select * FROM pedido ORDER BY id Desc LIMIT 1");
49: 
50:         varPED=ObjRS.Fields("id");
51:         ObjRS.Execute("Select * from fornecedores a, PEDIDOS b, notafiscal c where a.id_cliente=b.id_fornecedores and b.id_pedido=" & varPED ");
52: 
53: 
54:

Voces sabem pq desta mensagem?

Obrigado pela ajuda…

12 Respostas

emmanuelrock

ObjRS.Execute(“Select * from CLIENTES a, PEDIDOS b, BOLETOS c where a.id_cliente=b.id_cliente and b.id_pedido=” + varPED );

A

emanuel, blz?
Eu alterei o codigo pela linha que voce colocou e ele acusa o seguinte erro(no netbeans mesmo qdo deixo o mouse na linha)

unclosing string literal

na linha abaixo ele da o seguinte erro:

varPED=ObjRS.Fields("id");    <--- cannot find symbol
emmanuelrock

Posta o código do método por completo.

A

<%@ page import="com.teste.boleto.html.BoletoHTMLFormatter" %>
<%@ page import="com.teste.boleto.BoletoFactory" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.util.Date" %>

<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
<%@page import="br.com.teste.ecommerce.helper.ResourceHelper" %>

<%
            String caminho = ResourceHelper.getProperty(null, "testeCaminho");
            request.removeAttribute("caminho");
            request.setAttribute("caminho", caminho);
%>
<%
	Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/notafiscal","adm-nota","" );


	Statement stmt = conn.createStatement();
	ResultSet rs = stmt.executeQuery( "SELECT * FROM pedido ORDER BY id Desc LIMIT 1");

       varPED=ObjRS.Fields("id");  
       ObjRS.Execute("Select * from fornecedores a, PEDIDOS b, notafiscal c where a.id_cliente=b.id_fornecedores and b.id_pedido=" & varPED ");  

	rs.next();

	
	Double valor = new Double( rs.getDouble( "total_geral" ) );
	Date vencimento = rs.getDate( "vencimento" );
	Long nossoNum = new Long( rs.getLong( "nosso_numero" ) );
	String nomeSac = rs.getString( "id_cliente" );
	String enderecoSac = rs.getString( "entrega_endereco" );
	String cepSac = rs.getString( "entrega_cep" );
	String cidadeSac = rs.getString( "entrega_cidade" );
	String estadoSac = rs.getString( "entrega_id_estado" );

	rs.close();
	stmt.close();
	conn.close();

	
	BoletoFactory factory = new BoletoFactory();

	factory.setBanco( BoletoFactory.bancotesteL );


	factory.setAgencia( "1111" );
	factory.setCedente( "0011111" );
	factory.setCarteira( "98" );
	factory.setNossoNumero( nossoNum );
	factory.setValor( valor );
	factory.setVencimento( vencimento );
	factory.setNumConvenio( "1111111" );

	factory.setNomeCedente( "Empresa textil" );
	factory.setLocalPagamento( "Pagável em qualquer agência bancária até o vencimento." );

	factory.setNomeSac( nomeSac );
	factory.setEnderecoSac( enderecoSac );

	factory.setCepSac( cepSac );

	factory.setCidadeSac( cidadeSac );
	factory.setEstadoSac( estadoSac );

	factory.setMensagem( 1, "Após o vencimento, entre em contato com nossa central de atendimento: [b]0800-00001[/b]." );

	out.print( BoletoHTMLFormatter.asSlimWebPage( factory.createBoleto() ) );
%>

Ai esta…

emmanuelrock

Faltou a declaração da variável varPED:

varPED=ObjRS.Fields("id");
A

Entao

declarei a variavel e mesmo assim ocorre o mesmo erro;…

emmanuelrock

E o que seria a referência: ObjRS ??

A

é uma funcao pra puxar o conteudo do recordset

emmanuelrock

Poste o código atualizado.

emmanuelrock

Olhando abaixo note que seu método Fields deve retornar um inteiro, já que vc irá compará-lo com o id_pedido através da variável varPED.

int varPED=ObjRS.Fields("id");    
  ObjRS.Execute("Select * from fornecedores a, PEDIDOS b, notafiscal c where a.id_cliente=b.id_fornecedores and b.id_pedido=" + varPED );
A

cara…valeu mesmo…ficou assim:

Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery( "SELECT * FROM pedido ORDER BY id Desc LIMIT 1");  
       int varPED=ObjRS.Fields("id");      
       ObjRS.Execute("Select * from fornecedores a, PEDIDOS b, notafiscal c where a.id_cliente=b.id_fornecedores and b.id_pedido=" + varPED );

só ficou o erro do ObjRS, ele diz que nao reconhece esta funcao

Na real, é pra pegar os dados do pedido, do boleto e aplicar o select(pegando o registro corrente) mas ele em vez de retornar o registro com os dados ele retorna um monte de registro e em vez do nome do cliente, vem o ID dele

emmanuelrock

Com certeza vc terá que fazer algum join aí.

Criado 18 de março de 2010
Ultima resposta 18 de mar. de 2010
Respostas 12
Participantes 2