none
Problemas com registros RRS feed

  • Pergunta

  •  

    Olá! Estou alterando um sistema aqui na empresa, eles pediram para incluir um filtro. Trabalho na area de mestrado e quero incluir um filtro para mostrar no relatório o orientador do mestrando. O problema é que todos os outros campos são da tabela Alunos, existe uma tabela que faz conexao entre alunos e Professores que é banca. Consegui colocar o filtro, mas só aparece o primeiro registro do campo. Para aparecer o orientador do aluno, precisa fazer o seguinte comando:

     

    SELECT NOME FROM PROFESSORES WHERE CODIGO = (SELECT COD_ORIENTADOR FROM BANCA WHERE COD_ALUNO = (SELECT CODIGO FROM ALUNOS WHERE NOME ='NOME DO ALUNO'))

     

    que por sinal funciona muito bem no SQLServer 2005. PRoblema 2: não manjo asp, nem gosto de linguagens de script. Minha praia é Java e ASP.net(C#). Estou alterando aqui o sistema só a base que tenho de programação, nada direcionado a asp.

     

    Fiz da seguinte maneira:

     

     

    If vResp1.BOF and vResp1.EOF then %>
                  <span class="texto_aviso_red"><strong>Dados N&atilde;o Encontrado </strong><em><strong><br>
                  </strong></em></span> <span class="linksubmenu"><a href="BLOCKED SCRIPTvoltar()" class="linkmenu">Clique aqui para pesquisar novament</a></span><a href="BLOCKED SCRIPTvoltar()" class="linkmenu">e</a>
                  <%Else%>
                  <%if not vResp1.BOF and not vResp1.EOF then
         While Not vResp1.EOF
          
    %>
              </div></td>
            </tr>
            <tr class="texto">
              <td><div align="left" class="camposmaiusculo"><%=vResp1(vCampo1)%></div></td>
        <%If vCampo2 <> "" then%>
              <td><div align="left" class="camposmaiusculo"><%=vResp1(vCampo2)%></div></td>
        <%End If%>
        <%If vCampo3 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo3)%></td>
        <%End If%>
        <%If vCampo4 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo4)%></td>
        <%End If%>
        <%If vCampo5 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo5)%></td>
        <%End If%>
         <%If vCampo6 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp2(vCampo6)%></td>
        
        <%End If%>
               <%  
          vResp2.MoveNext       
          vResp1.MoveNext
                           Wend
                        End If
                 End If

     

    Qndo eu não seleciono orientador ele não diz nada. Se eu seleciono orientador, ele dá um erro:

     

    Nome
    ISAR MATTIELLO

    ADODB.Field erro '80020009'

    BOF ou EOF são verdadeiros, ou o registro atual foi excluído. A operação solicitada pelo aplicativo requer um registro atual.

    /ERP_Educacional/Alunos/Gera_Relatorio_Aluno_Conclui.asp, line 0

     

     

    Alguem sabe onde estou pecando? Acredito que seja simples, mas pra quem não sabe né... A propósito, quero aprender mais de asp para migrar os sistemas de asp para asp.net. Só que estou apertado com o prazo, podem me dar uma força dessa vez? Obrigado e um ótimo dia a todos!

    terça-feira, 16 de setembro de 2008 14:46

Todas as Respostas

  • bom, mudei um pouco o codigo e agora aparece todos os registros da tabela e não apenas os da select!

     <%if not vResp1.BOF and not vResp1.EOF then
              While Not vResp1.EOF
          
    %>
              </div></td>
            </tr>
            <tr class="texto">
              <td><div align="left" class="camposmaiusculo"><%=vResp1(vCampo1)%></div></td>
        <%If vCampo2 <> "" then%>
              <td><div align="left" class="camposmaiusculo"><%=vResp1(vCampo2)%></div></td>
        <%End If%>
        <%If vCampo3 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo3)%></td>
        <%End If%>
        <%If vCampo4 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo4)%></td>
        <%End If%>
        <%If vCampo5 <> "" then%>
              <td class="camposmaiusculo"><div align="left"><%=vResp1(vCampo5)%></td>
        <%End If%>
         <%If vCampo6 <> "" then%>
         <%If vResp2.BOF and vResp2.EOF then %>
         EOF
         <%Else%>
         <%If not vResp2.BOF and not vResp2.EOF then
         While Not vResp2.EOF
         %>    
              <td class="camposmaiusculo"><div align="left"><%=vResp2(vCampo6)%></td>
         <% vResp2.MoveNext
         Wend
         End If
         End If
         %>
        <%End If%>
               <%  
                 
          vResp1.MoveNext
                           Wend
                        End If
                 End If

     

    Nome
    ISAR MATTIELLO
    Yopanan Conrado Pereira
    Denis Gabos
    Alberto Colli Badino Junior
    Maria Rita Aprile
    Aldo Tonso
    Amélia Severino Ferreira e Santos
    Amilton Martins dos Santos
    Ana Lúcia Ferreira de Morais
    Adilson Eduardo Guelfi
    André Bernardo
    Antônio Gonçalves de Mello Júnior
    Sergio Cirelli Angulo

     

    Alguma idéia?
    terça-feira, 16 de setembro de 2008 15:13
  • To quase acreditando que asp não suporta subconsultas oO.

     

    tentei burlar isso de todo jeito mas nao funciona.

    Nenhuma luz?

     

    Set Conexao3 = Conexao2
    Set Conexao4 = Conexao2

    Set vResp1 = Conexao.Execute(strSql1)


    Set vResp3 = Conexao3.Execute("SELECT CODIGO FROM ALUNOS WHERE NOME = '"&vNome&"'")

     

    Set vResp4 = Conexao4.Execute("SELECT Cod_Orientador FROM BANCA WHERE COD_ALUNO ='"&vResp3&"'")


    Set vResp2 = Conexao2.Execute("SELECT NOME FROM PROFESSORES WHERE CODIGO = '"&vResp4&"'")

    terça-feira, 16 de setembro de 2008 15:31
  • Shamanpyro, subconsulta funciona sim, mas no seu caso conforme o que voce passou tente fazer assim

    Set Conexao3 = Conexao2

    Set Conexao4 = Conexao2

    Set vResp1 = Conexao.Execute(strSql1)


    Set vResp3 = Conexao3.Execute("SELECT CODIGO FROM ALUNOS WHERE NOME = '"&vNome&"'")

     

    Set vResp4 = Conexao4.Execute("SELECT Cod_Orientador FROM BANCA WHERE COD_ALUNO ='"& vResp3("codigo") &"'")


    Set vResp2 = Conexao2.Execute("SELECT NOME FROM PROFESSORES WHERE CODIGO = '"& vResp4("Cod_Orientador") &"'")


    Abraço


    Estevam

    terça-feira, 16 de setembro de 2008 16:07