Avatar billede webbe Nybegynder
24. januar 2002 - 08:33 Der er 3 kommentarer og
1 løsning

Tjeck af booking-system

Hejsa

Jeg er ved at lave et booking-system til et transport-firma men har lidt problemer med at tjecke om en bil/trailer m.m. er booket 2 gange på samme tid.

Min DB indeholder følgende felter:

CarNum (bil-nummer)
TrailerNum (trailer-nummer)
StartSted
Destination
Departure (afgang, dato)
DepTime (klokkeslet)
Arrival (ankomst)
ArrTime (klokkeslet)
Remarks (bemærkning)

Der er følgende kriterier:

1) Samme bil må ikke skulle 2 steder hen på samme tid.
2) 2 biler må ikke bruger den samme trailer på samme tid.
3) Samme bil må ikke skulle afsted igen før den er kommet hjem (ArrTime)
4) En trailer må ikke skifte bil før den er kommet hjem (ArrTime)

Jeg kan ikke rigtig se hvordan det skal gribes an, men jeg har pt. følgende kode:

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "brandetrans"

sql = "SELECT * FROM Booking WHERE TrailerNum="&Request.Form("trail_num")&" AND Departure='"&Request.Form("dep_dato")&"' "
Set rs = Connect.Execute(sql)

Session("Bilnr") = Request.Form("car_num")
Session("Trailer") = Request.Form("trailer_num")
Session("UdSted") = Request.Form("start_sted")
Session("IndSted") = Request.Form("destination")
Session("Afgang") = Request.Form("dep_dato")
Session("UdTid") = Request.Form("dep_tid")
Session("Ankomst") = Request.Form("arr_dato")
Session("IndTid") = Request.Form("arr_tid")
Session("Remark") = Request.Form("remarks")

do while not (rs.bof or rs.eof)
    If Session("Bilnr") = rs("CarNum") Then
        Fejl = "Bilen er allerede booket!"
    Else
        Fejl = "Bilen kan godt bookes!"
    End if
rs.movenext
loop

Jeg har forsøgt at lave en simpel test i koden og derefter udskrive min "Fejl", men den udskriver ikke noget.
Avatar billede marit Nybegynder
24. januar 2002 - 09:18 #1
Prøv: do while not rs.eof og cint(Session("Bilnr")) = cint(rs("CarNum")) eller cstr hvis det er tekst.
Prøv at udskrive rs("CarNum") i do løkken inden du laver ifsætningen.
Avatar billede webbe Nybegynder
24. januar 2002 - 09:22 #2
rs("CarNum") er jo tom da det er første gang der skal oprettes info i DB'en, men jeg skal jo have lavet mine tjeck allerede første gang!

Første gang der oprettes en post/record skal den jo bare løbe dem igennem og oprette i DB'en uden at melde fejl!
Avatar billede marit Nybegynder
24. januar 2002 - 09:30 #3
Den løber ikke igennem recordsettet hvis det er tomt.
men
if rs.eof or rs.bof then
tomt rs
else
do osv.
end if
Avatar billede webbe Nybegynder
28. januar 2002 - 09:57 #4
Fandt selv følgende løsning som virker:

i = "Booking er okay - tryk på OK for at gemme den!"

If (rs.bof or rs.eof) = True Then
    Fejl = i
Else
    do until rs.eof
        If CInt(Session("Trailer")) = CInt(rs("TrailerNum")) AND CStr(Session("UdTid")) <= CStr(rs("ArrTime")) Then
            Fejl = "Der opstod en fejl i booking - enten bil eller trailer er ikke kommet hjem eller er dobbelt-booket!<br>Ret fejlen og tjek igen."
        Else
            Fejl = i
        End if
    rs.movenext
    loop
End if
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester