Jag har en asp-sidan till ett motionsarrangemang med bokning av grillplatser. (www.joggajordenrunt.com/grill.asp). Under 12 dagar finns 3*6 grillpass att välja bland. I scripetet kör jag för varje pass: öppna db->kolla om bokad(->lägg ut bokningsinfo)->stäng db. Bifoga gärna din kod från sidan så kan vi ge dig konkreta exempel där vi använder oss av din kod för att lösa ditt problem. Det är vad jag kallar service. ;o) Är inget ess på databaser och sql men borde du inte kunna göra en join mellan passen och bokningsdatan och i den joinen lägga en constraint på att grillplatsen inte får vara bokad. Då blir det ju bara ett anrop?!? Det där med join och contrait fattade jag heller inte hur du menade. Förklara gärna! Hämta ut informationen för alla plasterna på en gång:Open...read...close...open...read...close...open....
Detta betyder att databasen behöver köra denna procedur 216 (!!) ggr (12*3*6) för denna sida, vilket tar både tid och kraft av servern. Har någon något bättre förslag till hur jag kan göra?
// PelleSv: Open...read...close...open...read...close...open....
Sv: Open...read...close...open...read...close...open....
Sv: Open...read...close...open...read...close...open....
lite kod:
Grillplats-sidan innhåller en tabell som sätter 'dag', tid' och 'plats' i variabel:
_________________________________________________________________________
<tr>
<td><B>Måndag<br>16/8</B><%dag = "d01" %> </td>
<td>fm<% tid = "fm" %></td>
<td> <% plats = "pl01" %><!--#include file = include/grilltider.asp --></td>
<td> <% plats = "pl02" %><!--#include file = include/grilltider.asp --></td>
<td> <% plats = "pl03" %><!--#include file = include/grilltider.asp --></td>
<td> <% plats = "pl04" %><!--#include file = include/grilltider.asp --></td>
<td> <% plats = "pl05" %><!--#include file = include/grilltider.asp --></td>
<td> <% plats = "pl06" %><!--#include file = include/grilltider.asp --></td>
<td><br>> <% tid = "" %</td>
</tr>
_________________________________________________________________________
För varje cell i ovanstående tabell anropas en include-fil (include/grilltider.asp) som "kollar" i databasen och lägger ut eventuell bokningsinfo:
_________________________________________________________________________
<!--#include file = ...öppnar databasen...-->
<%
PlatsVal = dag & "-" & plats & "-" & tid
SQL = "SELECT PlatsID, Foretag, Klockslag FROM Grilltider WHERE PlatsID= '" & PlatsVal &"'"
rs.Open SQL, MinCon
Ftg = "x" & rs("Foretag")
IF Ftg <> "x" THEN
Do WHILE NOT rs.EOF
response.Write rs("Foretag")
Klock = "x" & rs("Klockslag")
IF Klock <> "x" THEN
response.write "<BR> kl " & rs("Klockslag")
END IF
rs.MOVENEXT
Loop
ELSE
response.write "»»"
END IF
MinCon.Close : Set MinCon=Nothing
Set SQL=Nothing
Set plats = nothing : Set PlatsVal = nothing
%
_________________________________________________________________________Sv: Open...read...close...open...read...close...open....
SQL = "SELECT PlatsID, Foretag, Klockslag FROM Grilltider ORDER BY PlatsID"
Loopa igenom platserna, och kolla ifall det finns någon information för varje plats:
<code>For lngPace = 1 to 6
strPlace = "pl0" & lngPlace
If rs.EOF Then
... inte bokad
Else
If rs("PlatsId") = strPlace Then
... visa bokningen
Else
... inte bokad
End If
End If
Next</code>