Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kioshy

Eu e meus problemas com Database

Recommended Posts

Galera to fazendo um sistema para listar do banco de dados as informações de alguns hoteis cadastrados, tem q aparecer assim

 

Nome | Categoria | Apto SGL | Apto Dbl / Twn

 

Só q o q acontece pra cada valor de apartamento eu tenho um registro, quer dizer não dá pra fazer um while normal somente mudando de registro pq senão um Hotel repetiria 3 vezes e isso não pode acontecer.

 

Eu fiz o seguinte:

ASP

[*]

 

[*]<!-- #Include File "Conn.asp" -->

 

[*]<% Response.Buffer True %>

 

[*]

 

[*]<%

 

[*]'IDProjeto Session("Projeto")

 

[*]IDProjeto = 72

 

[*]

 

[*]Query  "SELECT DISTINCT ENTIDADE.ID, ENTIDADE.NOME, HOTEL.CATEGORIA"_

 

[*] & " FROM ENTIDADE, NEGOCIACAOHOSPEDAGEM, NEGOCIACAOHOSPEDAGEMSERVICOH, HOTEL"_

 

[*] & " WHERE NEGOCIACAOHOSPEDAGEM.ID_HOTEL = ENTIDADE.ID AND"_

 

[*] & " HOTEL.ID_ENTIDADE = ENTIDADE.ID AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID = NEGOCIACAOHOSPEDAGEMSERVICOH.ID_NEGOCIACAOHOSPEDAGEM AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID_HOTEL = ENTIDADE.ID AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID_PROJETO = " & IDProjeto & "ORDER BY Categoria Desc"

 

[*]

 

[*]Set ObjRSHoteis Server.CreateObject("ADODB.Recordset")

 

[*]%>

 

[*]<html>

 

[*]<head>

 

[*]<title>Documento sem título</title>

 

[*]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

 

[*]</head>

 

[*]

 

[*]<body>

 

[*]<table width="100%" border="1" cellspacing="2">

 

[*] <tr bgcolor="#dddddd">

 

[*] <td><div align="center"><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Hotéis</font></strong></font></div></td>

 

[*] <td><div align="center"><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Categoria</font></strong></font></div></td>

 

[*] <td><div align="center"><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Apto Individual</font></strong></font></div></td>

 

[*] <td><div align="center"><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Apto Duplo / Twin</font></strong></font></div></td>

 

[*] </tr>

 

[*] <% 

 

[*] ObjRSHoteis.CursorType = 2

 

[*] ObjRSHoteis.LockType = 3

 

[*] ObjRSHoteis.Open Query, Conn_Reserva

 

[*]

 

[*] While ObjRSHoteis.Eof False

 

[*] %>

 

[*] <tr bgcolor="#F2F2F2">

 

[*] <td><div align="center"><%=ObjRSHoteis(1)%></div></td>

 

[*] <% 

 

[*] Select case ObjRSHoteis(2)

 

[*] Case 0

 

[*] Categoria "Turística"

 

[*] Case 1

 

[*] Categoria "Luxo"

 

[*] Case 2

 

[*] Categoria "Superior"

 

[*] End Select

 

[*] %>

 

[*]  <td><div align="center"><%=Categoria%></div></td>

 

[*] <%

 

[*] IDHotel ObjRSHoteis(0)

 

[*]

 

[*] QueryTarifa  "SELECT SERVICOHOSPEDAGEM.TARIFAVENDA, SERVICO.DESCRICAO"_

 

[*] & " FROM ENTIDADE, NEGOCIACAOHOSPEDAGEM, SERVICOHOSPEDAGEM, NEGOCIACAOHOSPEDAGEMSERVICOH, HOTEL, SERVICO"_

 

[*] & " WHERE NEGOCIACAOHOSPEDAGEM.ID_HOTEL = " & IDHotel & " AND"_

 

[*] & " HOTEL.ID_ENTIDADE = ENTIDADE.ID AND"_

 

[*] & " SERVICOHOSPEDAGEM.ID = NEGOCIACAOHOSPEDAGEMSERVICOH.ID_SERVICOHOSPEDAGEM AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID = NEGOCIACAOHOSPEDAGEMSERVICOH.ID_NEGOCIACAOHOSPEDAGEM AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID_HOTEL = ENTIDADE.ID AND"_

 

[*] & " SERVICO.ID = SERVICOHOSPEDAGEM.ID_SERVICO AND"_

 

[*] & " NEGOCIACAOHOSPEDAGEM.ID_PROJETO = " & IDProjeto & "order by SERVICOHOSPEDAGEM.TARIFAVENDA"

 

[*]

 

[*] Set ObjRSTarifas Server.CreateObject("ADODB.Recordset")

 

[*] ObjRSTarifas.CursorType = 2

 

[*] ObjRSTarifas.LockType = 3

 

[*]

 

[*] ObjRSTarifas.Open QueryTarifa, Conn_reserva

 

[*] %>

 

[*] <td><div align="center"><%=CInt(ObjRSTarifas("TarifaVenda"))%></div></td>

 

[*] <% 

 

[*] ObjRSTarifas.MoveNext

 

[*] %>

 

[*] <td><div align="center"><%=CInt(ObjRSTarifas("TarifaVenda"))%></div></td>

 

[*] <%

 

[*] ObjRSTarifas.Close

 

[*] Set ObjRSTarifas = Nothing

 

[*] %>

 

[*] </tr>

 

[*] <% ObjRSHoteis.MoveNext : Wend %>

 

[*]</table>

 

[*] <%

 

[*] ObjRSHoteis.Close

 

[*] Set ObjRSHoteis = Nothing

 

[*] %>

 

[*]</body>

 

[*]</html>

 

[*]

 

[*]

Só que na hora que eu executo apresenta um erro:

 

Tipo de erro:

(0x80020009)

Exceção.

/testeIT/tarifas.asp, line 75

 

na linha 75 tem o seguinte:

<td><div align="center"><%=CInt(ObjRSTarifas("TarifaVenda"))%></div></td>

 

Se alguém souber o pq disso por favor me ajude. :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

ObjRSTarifas("TarifaVenda") Vem com valor sim, pois se eu executar esse script sem o ObjRSTarifas.Movenext ele executa normalmente só que não apresenta do jeito q eu preciso e toda vez q eu uso o MoveNext ele apresenta esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que vi você está executando ele após o Movenext por isso da erro de exeção!

esta tentando visualizar a após WHILE, joga ele em uma variavel e ve no que dá!

 

ASP

[*]<td><div align="center"><%=CInt(ObjRSTarifas("TarifaVenda"))%>

 

[*]</div></td>

 

[*]

 

[*]<% 

 

[*]TarifaVendaVar ObjRSTarifas("TarifaVenda")

 

[*]  %>

 

[*]

 

[*] <% 

 

[*]

 

[*] ObjRSTarifas.MoveNext

 

[*]

 

[*] %>

 

[*]

 

[*] <td><div align="center"><%=CInt(TarifaVendaVar)%></div></td>

 

[*]

 

[*] <%

 

[*]

 

[*] ObjRSTarifas.Close

 

[*]

 

[*] Set ObjRSTarifas = Nothing

 

[*] %>

 

[*] </tr>

Compartilhar este post


Link para o post
Compartilhar em outros sites

<td><div align="center"><%=CInt(ObjRSTarifas("TarifaVenda"))%></div></td><% TarifaVendaVar = ObjRSTarifas("TarifaVenda")         %>    <%         ObjRSTarifas.MoveNext    %>    <td><div align="center"><%=CInt(TarifaVendaVar)%></div></td>    <%       ObjRSTarifas.Close       Set ObjRSTarifas = Nothing    %>  </tr>

Mas o q acontece neste caso ele não irá pegar o segundo registo, pois você atribui um valor a varia TarifaVendaVar antes de mover para o próximo registro, então significa q irá escrever duas vezes a mesma coisa.eu preciso escrever na tela o primeiro e o segundo registro, então eu realmente preciso usar o movenext.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você quer escrever apenas os dois primeiros registros??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso mesmo apenas os dois primeiros, porque para cada hotel existem tres valores de apartamentoSGL DBLTWNSendo que DBL / TWN tem os mesmo preços e eu preciso listar eles.

Compartilhar este post


Link para o post
Compartilhar em outros sites

use um SELECT TOP 2 pra selecionar apenas os doise use um loop pra lista-los asim evita erros de EOF

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá mas a minha query é um poko complexa, eu não sei como usar o Select Top 2 nela:

 

QueryTarifa = "SELECT SERVICOHOSPEDAGEM.TARIFAVENDA, SERVICO.DESCRICAO"_

 

& " FROM ENTIDADE, NEGOCIACAOHOSPEDAGEM, SERVICOHOSPEDAGEM, NEGOCIACAOHOSPEDAGEMSERVICOH, HOTEL, SERVICO"_

 

& " WHERE NEGOCIACAOHOSPEDAGEM.ID_HOTEL = " & IDHotel & " AND"_

 

& " HOTEL.ID_ENTIDADE = ENTIDADE.ID AND"_

 

& " SERVICOHOSPEDAGEM.ID = NEGOCIACAOHOSPEDAGEMSERVICOH.ID_SERVICOHOSPEDAGEM AND"_

 

& " NEGOCIACAOHOSPEDAGEM.ID = NEGOCIACAOHOSPEDAGEMSERVICOH.ID_NEGOCIACAOHOSPEDAGEM AND"_

 

& " NEGOCIACAOHOSPEDAGEM.ID_HOTEL = ENTIDADE.ID AND"_

 

& " SERVICO.ID = SERVICOHOSPEDAGEM.ID_SERVICO AND"_

 

& " NEGOCIACAOHOSPEDAGEM.ID_PROJETO = " & IDProjeto & "order by SERVICOHOSPEDAGEM.TARIFAVENDA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera Vlw pela ajuda consegui resolver mais este problema com a ajuda de vcs.

 

Ah vlw marioufpa pela ajuda, realmente com esse top 2 resolveu tudo.

Ah num posso esquece do explore vlw irmão. http://forum.imasters.com.br/public/style_emoticons/default/worshippy.gif

de nada amigao

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.