Erro em select em uma tabela vazia

Falae galera, estou fazendo uma pequena aplicação com SQL Server, porém estou com um problema que não descobri o que é, quando a tabela está vazia, ela dá erro de sql, quando tem um registro, vai normalmente, segue o código e o erro:

[code]
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
c = DriverManager.getConnection(“jdbc:odbc:Driver=SQL Server;Server=FUSCOPC;Database=master”);
PreparedStatement p;
ResultSet rs;

try {
p = c.prepareStatement(“SELECT func_id,func_nome,func_cargo,func_telefone FROM funcionarios ORDER BY func_nome”,ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);

        rs = p.executeQuery();
        if(rs.next())
        {
            montarTabela();
        }
    } catch (SQLException ex) {
        
        JOptionPane.showMessageDialog(null,ex.getMessage());
    }[/code]

Quando a tabela está vazia, dá o seguinte erro:

[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name ‘FUNCIONARIOS’.

Mas quando tem algum registro na tabela vai normlmanete, muito estranho. :?

Amigo, não sei se tem algo a ver… mais pq vc ta usando um prepared statement. Voce não passa nenhum parametro pra ele, ja tenteou usar um statement normal?

extreme z3r0,

Nesse select não, mas depois o usuário poderá fazer condições de pesquisa.

Creio que não tenha nada ver, porque eu consigo executar normalmente o select quando há algum registro na tabela, mas pode tentar a sua sugestão e ver no que dá, depois eu posto o resultado, obrigado.

utilize ex.printStackTrace(); e poste o erro q ta dando é mais facil identicar o erro por ele

[quote=joede.fadel]utilize ex.printStackTrace(); e poste o erro q ta dando é mais facil identicar o erro por ele

[/quote]

Ola joede, segue o print:

[quote]java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name ‘FUNCIONARIOS’.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6957)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7114)
at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:3110)
at sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:338)
at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:253)
at sun.jdbc.odbc.JdbcOdbcResultSet.calculateRowCount(JdbcOdbcResultSet.java:6353)
at sun.jdbc.odbc.JdbcOdbcResultSet.initialize(JdbcOdbcResultSet.java:155)
at sun.jdbc.odbc.JdbcOdbcStatement.getResultSet(JdbcOdbcStatement.java:424)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeQuery(JdbcOdbcPreparedStatement.java:93)
at FrmFuncionario.(FrmFuncionario.java:64)
at Principal.mnFuncionariosActionPerformed(Principal.java:218)
at Principal.access$200(Principal.java:14)
at Principal$3.actionPerformed(Principal.java:125)
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:1225)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
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)[/quote]

Desculpem o post duplicado.

Eu achei o erro, é por causa dos dois parametros no preparedStatement: ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY

Eu tava colocando isso porque eu estava me baseando em um exemplo, e tinha colocado também, tirei e não deu problema, irei pesquisar.

Mas se alguém já saber o que significa, eu agradeço uma explicação informal. Obrigado.

esses dois parametros perminte vc percorrer o resultset de qualquer forma utilzando do next, previus, last, first e não apenas o next