Select com JOIN no SQLSERVER

6 respostas
R

Caros estou pelo menos a um dia com um grave problema ao criar um SELECT para o SQL SERVER...

Não sei o porque, mas meu codigo sempre da erro e cai no catch na hora de processar a query. Já tentei todas as sintaxes que pude imaginar e nenhuma funcionou. Sempre o mesmo erro:

GRAVE: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a resultset

Sei que o problema não é permissão no firewall ou no banco porque isso já foi verificado. Se voces puderem me ajudar agradeço.
Abaixo segue parte do código.

String sql = "SELECT TAB1.[ID], TAB1[NOME], TAB2.[TELEFONE], TAB2.[TELEFONE CELULAR],TAB2.[EMAIL]"
                + " FROM [PROJETO].[dbo].TAB1 LEFT JOIN [PROJETO].[dbo].TAB2"
                + " ON TAB1.[ID] = TAB2.[ID] WHERE TAB1.[NOME] IS NOT NULL";
				
        PreparedStatement stmt = null;
        Conect c = null;
        Connection connection = null;
        SimpleDateFormat dt_fmt = null;
        ResultSet rs = null;
        try {
            c = new Conect();
            connection = c.conectar();
			stmt = connection.prepareStatement(sql);
            rs = stmt.executeQuery();
			while (rs.next()){...}
			
            connection.close();
        } catch (SQLException ex) {
            Logger.getLogger(Conect.class.getName()).log(Level.SEVERE, null, ex);
        }

Desde já obrigado
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
"Imaginação é mais importante que conhecimento"
Albert Einstein

6 Respostas

CristianPalmaSola10

Ja tentou rodar a consulta sem os colcheltes

enves de

TAB2.[TELEFONE]

colocar assim

TAB2.TELEFONE

ja tentou fazer isso ?

g4j

Eu código java parece estar ok.

No sql percebi que falta um ponto em “TAB1[NOME]”.

R

Cristian

é indiferente, pois as colunas com nome composto como [TELEFONE CELULAR] só podem funcionar com colchetes, logo eles não influenciam, mas testei de qualquer forma… na mesma

g4j

foi só um problema de digitação na hora de postar no forum, no netbeans está com a notação correta.

g4j

ok,

Pode postar o stacktrace completo que está saindo no catch (SQLException ex) ? Faz um ex.printStackTrace() e cole aqui.

R
GRAVE: com.microsoft.sqlserver.jdbc.SQLServerException: The statement did not return a resultset.

at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:408)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)

at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)

at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)

at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)

at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)

at com.telespazio.lip.servlet.ImplantacaoServlet.processRequest(ImplantacaoServlet.java:118)

at com.telespazio.lip.servlet.ImplantacaoServlet.doGet(ImplantacaoServlet.java:269)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)

at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1542)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)

at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)

at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:161)

at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:331)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)

at com.sun.enterprise.v3.services.impl.ContainerMapper$AdapterCallable.call(ContainerMapper.java:317)

at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)

at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:849)

at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:746)

at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1045)

at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:228)

at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)

at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)

at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)

at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)

at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)

at com.sun.grizzly.ContextTask.run(ContextTask.java:71)

at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)

at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)

at java.lang.Thread.run(Thread.java:662)
R

Alguem tem alguma nova ideia?

Criado 31 de julho de 2012
Ultima resposta 1 de ago. de 2012
Respostas 6
Participantes 3