Metodo (select distinct cidade from empresas) do executesql

3 respostas
J

Olá, Sou novo em Java.
mas estou estudando bastante…

há pouco tempo eu comecei a desenvolver um programa, para melhorar meus conhecimentos.
sei que essa dúvida é muito ridicula, então me desculpe a ignorãncia e os erros de português. =D
é um programa de cadastro de empresas.
fiz um banco access, conecte-o ao programa através do ODBC.
quando o Jframe empresas abre ele executa o segunte código:

public void atualiza_cmb_pesq_cidade(){  
        try{  
            cmb_pesq_cidade.removeAllItems(); // remove todos os itens do combo  
            conexao.executaSQL("select distinct cidade from empresas");  
            while(conexao.resultset.next()){ // enquanto encontrar carrega a cidade no combo                      
                cmb_pesq_cidade.addItem(conexao.resultset.getString("cidade"));    
                        }  
            }          
        catch(SQLException erro){
        erro.printStackTrace(); // <-
                JOptionPane.showMessageDialog(null, "Não foi possível localizar os dados.");  
            }

que faz ele pegar a cidade de cada registro existente na tabela.
O meu problema é que se existirem duas ou mais cidades iguais na tabela ele irá adiciona-los combo-box.
e eu não quero.
Pq esse cmb_pesq_cidade em um parâmetro de pesquisa.

O Cristiano de Barros Me ajudou muito em “(select distinct cidade from empresas)” mais ainda continuo com problemas…
olha oque aparece:

init:

deps-jar:

Compiling 1 source file to J:\Projetos Java\ala_ferramentas\build\classes

compile:

run:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Estado de cursor inválido

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)

at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)

at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)

at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)

at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)

at empresas.empresas.atualiza_cmb_pesq_cidade(empresas.java:721)

at empresas.empresas.(empresas.java:23)

at inicio.inicio.bt_empresasActionPerformed(inicio.java:283)

at inicio.inicio.access$200(inicio.java:13)

at inicio.inicio$3.actionPerformed(inicio.java:107)

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.Component.processMouseEvent(Component.java:6134)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5899)

at java.awt.Container.processEvent(Container.java:2023)

at java.awt.Component.dispatchEventImpl(Component.java:4501)

at java.awt.Container.dispatchEventImpl(Container.java:2081)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)

at java.awt.Container.dispatchEventImpl(Container.java:2067)

at java.awt.Window.dispatchEventImpl(Window.java:2458)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

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)

Java Result: 5

CONSTRUÍDO COM SUCESSO (tempo total: 42 segundos)

Alguém pode me ajudar?

3 Respostas

danilopelegrino

juniorcilva:
Olá, Sou novo em Java.
mas estou estudando bastante…

há pouco tempo eu comecei a desenvolver um programa, para melhorar meus conhecimentos.
sei que essa dúvida é muito ridicula, então me desculpe a ignorãncia e os erros de português. =D
é um programa de cadastro de empresas.
fiz um banco access, conecte-o ao programa através do ODBC.
quando o Jframe empresas abre ele executa o segunte código:

public void atualiza_cmb_pesq_cidade(){  
        try{  
            cmb_pesq_cidade.removeAllItems(); // remove todos os itens do combo  
            conexao.executaSQL("select distinct cidade from empresas");  
            while(conexao.resultset.next()){ // enquanto encontrar carrega a cidade no combo                      
                cmb_pesq_cidade.addItem(conexao.resultset.getString("cidade"));    
                        }  
            }          
        catch(SQLException erro){
        erro.printStackTrace(); // <-
                JOptionPane.showMessageDialog(null, "Não foi possível localizar os dados.");  
            }

que faz ele pegar a cidade de cada registro existente na tabela.
O meu problema é que se existirem duas ou mais cidades iguais na tabela ele irá adiciona-los combo-box.
e eu não quero.
Pq esse cmb_pesq_cidade em um parâmetro de pesquisa.

O Cristiano de Barros Me ajudou muito em “(select distinct cidade from empresas)” mais ainda continuo com problemas…
olha oque aparece:

init:

deps-jar:

Compiling 1 source file to J:\Projetos Java\ala_ferramentas\build\classes

compile:

run:

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Estado de cursor inválido

at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)

at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)

at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)

at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)

at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)

at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)

at empresas.empresas.atualiza_cmb_pesq_cidade(empresas.java:721)

at empresas.empresas.(empresas.java:23)

at inicio.inicio.bt_empresasActionPerformed(inicio.java:283)

at inicio.inicio.access$200(inicio.java:13)

at inicio.inicio$3.actionPerformed(inicio.java:107)

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.Component.processMouseEvent(Component.java:6134)

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5899)

at java.awt.Container.processEvent(Container.java:2023)

at java.awt.Component.dispatchEventImpl(Component.java:4501)

at java.awt.Container.dispatchEventImpl(Container.java:2081)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)

at java.awt.Container.dispatchEventImpl(Container.java:2067)

at java.awt.Window.dispatchEventImpl(Window.java:2458)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

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)

Java Result: 5

CONSTRUÍDO COM SUCESSO (tempo total: 42 segundos)

Alguém pode me ajudar?

Fio, posso estar errado, mais se não me engano, a coluna que vc nao quer que repita tem de estar entre (). Ou seja, tenta isso aqui:

conexao.executaSQL("select distinct(cidade) from empresas");

abraços

J

Ahh sei lah… eu colequi…
Mais ainda persiste o problema…
:cry:

lina

Oi,

Com este código, não dá para entender o que significa cada variavel! mais isso estava acontecendo ao executar o comando next() no resultSet.

Pode existir algum ResultSet em aberto, tente fecha-lo antes:

public void atualiza_cmb_pesq_cidade(){ try{ cmb_pesq_cidade.removeAllItems(); // remove todos os itens do combo // <Variavel_de_conexao>.Close(conexao.resultset); conexao.executaSQL("select distinct cidade from empresas"); while(conexao.resultset.next()){ // enquanto encontrar carrega a cidade no combo cmb_pesq_cidade.addItem(conexao.resultset.getString("cidade")); } } catch(SQLException erro){ erro.printStackTrace(); // <- JOptionPane.showMessageDialog(null, "Não foi possível localizar os dados."); }

Tchauzin!

Criado 14 de setembro de 2009
Ultima resposta 14 de set. de 2009
Respostas 3
Participantes 3