Ajuda com sql

6 respostas
java
cleitonoliveira

Gente por favor alguem me ajuda pelo amor de deus, que birosca que esta errado no codigo abaixo, estou fazendo um filtro simples de um relatorio, mas insiste em dar erro de sintaxe, sei la mais oq fazer, ao executar o sql no xamp ta certinho a consulta.

public class RelatFiltro {
	
	ConexaoMySql con = new ConexaoMySql();
	
	public void RelatFiltro(String codigoVenda) {
		try {
			con.conectar();
			con.executarSQL("SELECT * from tbl_vendas where pk_id_vendas '"+codigoVenda+"';");
			JRResultSetDataSource jrRS = new JRResultSetDataSource(con.getResultSet());
			JasperPrint jasperPrint = JasperFillManager.fillReport("C:/Projetos Java/BiaHotDog/src/ArquivosJasper/report1.jasper", new HashMap(), jrRS);
			JasperViewer.viewReport(jasperPrint);
		} catch (Exception erro) {
			JOptionPane.showMessageDialog(null, "deu erro ="+erro);
		}
	}

O erro:

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '''' at line 1
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
	at com.mysql.jdbc.Util.getInstance(Util.java:408)
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2439)
	at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1365)
	at conexoes.ConexaoMySql.executarSQL(ConexaoMySql.java:79)
	at relatorios.RelatFiltro.RelatFiltro(RelatFiltro.java:28)
	at relatorios.ImprimeRelatFiltro.jButton1ActionPerformed(ImprimeRelatFiltro.java:68)
	at relatorios.ImprimeRelatFiltro.access$000(ImprimeRelatFiltro.java:12)
	at relatorios.ImprimeRelatFiltro$1.actionPerformed(ImprimeRelatFiltro.java:38)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6533)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6298)
	at java.awt.Container.processEvent(Container.java:2236)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2294)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
	at java.awt.Container.dispatchEventImpl(Container.java:2280)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.awt.EventQueue$4.run(EventQueue.java:729)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

6 Respostas

Lucas_Camara

Parece que faltou um = no seu sql:

"SELECT * from tbl_vendas where pk_id_vendas = '"+codigoVenda+"';"
                                             ^
cleitonoliveira

Então eu fiz assim também, ai da este erro, isso que não estou entendendo.

pmlm

A tua coluna tem realmente este nome? Parece mais nome da chave primária e não da coluna.

cleitonoliveira

pmlm, sim na verdade é uma chave primaria mesmo, no caso sendo chave primaria não funciona? O estranho que tentei pela coluna data, esta sim é uma coluna e da o mesmo erro, mas vou tentar de outra maneira.

pmlm

Não estou a questionar se a coluna é chave primária.
Estou a questionar se esse é mesmo o nome da coluna pois nao é normal ter colunas com nome pk_*

cleitonoliveira

pmlm, A sim, é o nome mesmo, eu na verdade acho que estou com algum erro, porque mesmo no irreport não funciona o parâmetro, e estou passando corretamente.

SELECT * from tbl_vendas where ven_data_venda between $P!{dt1} and $P!{dt2}
SELECT * from tbl_vendas where pk_id_vendas = $P!{venda}

Mesmo assim da como documento não contem paginas.

O mesmo acontece ao filtrar pelo id da venda

Criado 19 de junho de 2020
Ultima resposta 22 de jun. de 2020
Respostas 6
Participantes 3