Jump to content

Recommended Posts

Posted

  o programa deverá servir para registar reservas de autocarros.

  Os autocarros são 2.

  O que se pretende é ter uma variável de controlo ( para dar um erro) para controlar se já existem 2 autocarros ocupados.  Ou seja em caso de nova requisição se o ano, mês, dia já está registado numa reserva da base de dados deveremos comparar  a hora de partida desejada e a hora de chegada que já existe na base de dados. Em caso de a partida da nova reserva ser antes da chegada da antiga  a variável deverá aumentar uma unidade.

  Se a variável tiver o valor 2 então deverá ser informado o utilizador de impossibilidade de requisição.

  O problema é que os IF's não estão a comparar.

' Criar uma ligação para Base de Dados

Set ligacao = Server.CreateObject("ADODB.Connection")

' Abrir Base de Dados Gestão de Viaturas

ligacao.Open "DSN=gestaoViaturas"

' Criar uma instância para Recorset, assim podemos manipular os dados da Base de Dados

Set recligacao = Server.CreateObject("ADODB.Recordset")

' Serve para controlar quantas reservas existem num dia em autocarros -tipo1 -( 36 lugares )

' Serve para controlar quantas reservas existem num dia na carrinha -tipo2 -( 8 lugares )

tipo1 = 0

tipo2 = 0

' Vamos percorrer a tabela para saber quantas reservas existem no dia pretendido

SQLstmt= "SELECT h_chegada,m_chegada FROM reserva WHERE ((a_data=" & Request.Form("ano") & ") and (m_data=" & Request.Form("mes") & ") and (d_data=" & Request.Form("dia") & "))"

'e abre-la

Set recligacao = ligacao.execute(SQLstmt)

while not recligacao.EOF

If Cint(recligacao.Fields("h_chegada")) > hora_partida then

response.write "Chegou comparação 1 <br>"

if visitantes < 8 then

tipo2 = tipo2 + 1

else

tipo1 = tipo1 + 1

end if

else

If ((Cint(recligacao.Fields("h_chegada")) = hora_partida) and ( Cint(recligacao.Fields("m_chegada")) > minuto_partida)) then

response.write "Chegou comparação 2 <br>"

if visitantes < 8 then

tipo2 = tipo2 + 1

else

tipo1 = tipo1 + 1

end if

end if

end if

'response.write " Hora chegada reserva = " & recligacao.Fields("h_chegada") & "h : " & recligacao.Fields("m_chegada") & "m <br>"

'response.write " Hora partida pedido= " & hora_partida & "h : " & minuto_partida & "m <br>" 

recligacao.MoveNext

wend

Se tiverem por aí uma ideia... agradeço.

Sem mais

Posted

Creio que compreendi o que necessitas de fazer mas não compreendi bem como o fazes.

Acho que o problema dos IFs acontecem devido a uma destas duas causas (ou a ambas):

- dados que são retornados da BD não serem bem os que esperas quando fazes as validações.

- variável visitantes não está a ser incializada nem incrementada.

Vê se consegues colocar a BD a fazer esse trabalho por ti, se consegues obter essa contagem através de um "SELECT COUNT(*)".

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

Obrigado pela resposta.

Mas já encontrei uma solução para o problema.

Na comparação do if para que não houvesse problemas utilizei a conversão Cint em ambos os campos . Deu resultado.

Fica aqui uma sugestão para estas comparações.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.