Fórum Tratar mensagem do banco de dados para o usuario #403699
24/06/2011
0
tenho uma procedure que se o usuário não tiver acesso ela exibe uma exceção.
O problema é que na aplicação preciso tratar essa mensagem para o usuário, ou seja, jogar uma mensagem na tela. Podem me ajudar por favor?
MINHA PROCEDURE
SET TERM ^ ; CREATE PROCEDURE SP_RESTRICOES ( PTABELA DM_ID, PUSUARIO DM_ID, PLOGIN DM_LOGIN, POPR DM_OPR ) AS declare variable vcount dm_inteiro; declare variable vincluir dm_opr; declare variable valterar dm_opr; declare variable vexcluir dm_opr; declare variable vvisualizar dm_opr; declare variable vimprimir dm_opr; begin -- verifica as permissões do usuario select G.INCLUIR,G.ALTERAR,EXCLUIR,G.visualizar ,G.IMPRIMIR FROM USUARIO U INNER join grupo_sub G ON G.id_grupo = U.id_grupo WHERE U.idusuario = :pusuario AND ID_TABELA = :ptabela INTO VINCLUIR,VALTERAR,VEXCLUIR,VVISUALIZAR,VIMPRIMIR; if (POPR = 'I' AND vINCLUIR = 'N') then exception error_access; ELSE if (POPR = 'U' AND vALTERAR = 'N') then exception error_access; ELSE if (POPR = 'D' AND vEXCLUIR = 'N') then exception error_access; ELSE if (POPR = 'W' AND vVISUALIZAR = 'N') then exception error_access; ELSE if (POPR = 'P' AND vIMPRIMIR = 'N') then exception error_access; end^ SET TERM ; ^
MÉTODO DA CLASSE DAO
public void addFornecedor(Fornecedor frn){
try {
String sql = "{ CALL SP_IAD_FORNECEDOR(?,?,?,?,?,?,?,?,?,?,?,?) }";
executePrepered(sql,frn.getIdforn(),frn.getNome(),frn.getEndereco(),frn.getNumero(),frn.getComplemento(),frn.getBairro(),
frn.getCidade(),frn.getInscEstadual(),frn.getTelefone(),frn.getEmail(),frn.getUsuario(),frn.getOpr());
} catch (SQLException ex) {
Logger.getLogger(FornecedorDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
STACK TRACE COM A MENSAGEM DE ERRO
ERROR_ACCESS Acesso negado At procedure 'SP_RESTRICOES' line: 27, col: 44 At procedure 'SP_IAD_FORNECEDOR' line: 17, col: 5 at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.readStatusVector(AbstractJavaGDSImpl.java:2169) at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.receiveResponse(AbstractJavaGDSImpl.java:2119) at org.firebirdsql.gds.impl.wire.AbstractJavaGDSImpl.iscDsqlExecute2(AbstractJavaGDSImpl.java:1185) at org.firebirdsql.gds.impl.GDSHelper.executeStatement(GDSHelper.java:226) at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:726) at org.firebirdsql.jdbc.AbstractCallableStatement.internalExecute(AbstractCallableStatement.java:435) at org.firebirdsql.jdbc.AbstractCallableStatement.executeUpdate(AbstractCallableStatement.java:341) at treinamento.dao.GenericaDao.executePrepered(GenericaDao.java:72) at treinamento.dao.FornecedorDao.addFornecedor(FornecedorDao.java:32) at treinamento.forms.frmFornecedor.btnConfirmarActionPerformed(frmFornecedor.java:504) at treinamento.forms.frmFornecedor.access$400(frmFornecedor.java:32) at treinamento.forms.frmFornecedor$6.actionPerformed(frmFornecedor.java:347) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.Dialog$3.run(Dialog.java:1098) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1096) at java.awt.Component.show(Component.java:1585) at java.awt.Component.setVisible(Component.java:1537) at java.awt.Window.setVisible(Window.java:842) at java.awt.Dialog.setVisible(Dialog.java:986) at treinamento.forms.frmPrincipal.jmiFornecedorActionPerformed(frmPrincipal.java:177) at treinamento.forms.frmPrincipal.access$100(frmPrincipal.java:17) at treinamento.forms.frmPrincipal$2.actionPerformed(frmPrincipal.java:100) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.AbstractButton.doClick(AbstractButton.java:357) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Nilo Souza
Curtir tópico
+ 0Posts
25/06/2011
Davi Costa
Além de SQLException, trata tb Exception, mais abaixo.
Daí vc vê qual entra e trata sua aplicação.
att Davi
Gostei + 0
25/06/2011
Nilo Souza
Gostei + 0
26/06/2011
Davi Costa
try {
String sql = "{ CALL SP_IAD_FORNECEDOR(?,?,?,?,?,?,?,?,?,?,?,?) }";
executePrepered(sql,frn.getIdforn(),frn.getNome(),frn.getEndereco(),frn.getNumero(),frn.getComplemento(),frn.getBairro(),
frn.getCidade(),frn.getInscEstadual(),frn.getTelefone(),frn.getEmail(),frn.getUsuario(),frn.getOpr());
} catch (SQLException ex) {
Logger.getLogger(FornecedorDao.class.getName()).log(Level.SEVERE, null, ex);
}catch(Exception e) {
Logger.getLogger(FornecedorDao.class.getName()).log(Level.SEVERE, null, e);
}
}
Att Davi
Gostei + 0
26/06/2011
Nilo Souza
Como trato isso na aplicação. Tenho que criar alguma classe?
Gostei + 0
27/06/2011
Davi Costa
Para que isso dê certo e o código compile vc precisa declara com throws o método addFornecedor.
att Davi
Gostei + 0
27/06/2011
Dyego Carmo
Se sim , favor fechar o chamado !
Valeu !
Gostei + 0
27/06/2011
Nilo Souza
Gostei + 0
28/06/2011
Davi Costa
att Davi
Gostei + 0
01/07/2011
Nilo Souza
01/07/2011 19:18:47 treinamento.dao.FornecedorDao addFornecedor GRAVE: null org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544517. exception 1 ERROR_ACCESS Acesso negado At procedure 'SP_RESTRICOES' line: 27, col: 44 At procedure 'SP_IAD_FORNECEDOR' line: 17, col: 5 at org.firebirdsql.jdbc.AbstractPreparedStatement.internalExecute(AbstractPreparedStatement.java:730) at org.firebirdsql.jdbc.AbstractCallableStatement.internalExecute(AbstractCallableStatement.java:435) at org.firebirdsql.jdbc.AbstractCallableStatement.executeUpdate(AbstractCallableStatement.java:341) at treinamento.dao.GenericaDao.executePrepered(GenericaDao.java:72) at treinamento.dao.FornecedorDao.addFornecedor(FornecedorDao.java:33) at treinamento.forms.frmFornecedor.btnConfirmarActionPerformed(frmFornecedor.java:533) at treinamento.forms.frmFornecedor.access$400(frmFornecedor.java:35) at treinamento.forms.frmFornecedor$6.actionPerformed(frmFornecedor.java:353) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178) at java.awt.Dialog$1.run(Dialog.java:1046) at java.awt.Dialog$3.run(Dialog.java:1098) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Dialog.show(Dialog.java:1096) at java.awt.Component.show(Component.java:1585) at java.awt.Component.setVisible(Component.java:1537) at java.awt.Window.setVisible(Window.java:842) at java.awt.Dialog.setVisible(Dialog.java:986) at treinamento.forms.frmPrincipal.jmiFornecedorActionPerformed(frmPrincipal.java:177) at treinamento.forms.frmPrincipal.access$100(frmPrincipal.java:17) at treinamento.forms.frmPrincipal$2.actionPerformed(frmPrincipal.java:100) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.AbstractButton.doClick(AbstractButton.java:357) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850) at java.awt.Component.processMouseEvent(Component.java:6289) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6054) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)