|
| ADODB.Connection reflekterer ikke ændringe~ Fra : Steen Nielsen |
Dato : 08-01-01 21:48 |
|
Jeg har en webside, som er lavet i asp, og består af en HTMLtabel
indeholdende et antal poster, der er hentet i en Access database.
Disse poster kan opdateres ved at kalde et cgi-program, som, hvis
opdateringen lykkes, redirecter tilbage til min asp-side.
Når jeg opdaterer data sker det sommetider, ikke altid, at mine
opdateringer mangler i HTMLtabellen og først fremkommer efter at
jeg har trykket refresh i browseren.
Programmet opfører sig som om, at det læser fra en cache, der ikke
altid er opdateret. Mit spørgsmål er derfor:
Kan jeg være sikker på, at min ADO forbindelse altid læser de sidste
nye data fra databasen, eller kunne det tænkes, at ADO forbindelsen
genbruger et eksisterende recordset, hvis dette kun er få sekunder
gammelt?
Nedenfor er der nogle udklip fra min kode, det kunne jo også tænkes der
var en bug.
Jeg har indsat følgende headers i min asp-fil som generer HTMLtabellen:
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-control" content="private">
Databasen åbnes på følgende måde:
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("../../_private/MyDB.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN, 2, 2
ACategory = Request.QueryString("Category")
strSQL = "SELECT * FROM Categories WHERE (UniqueID=" & ACategory & ")"
Set dbConn = Conn.Execute(strSQL)
%>
og lukkes i slutningen af programmet på følgende måde:
<%
dbConn.Close
Set dbConn = Nothing
%>
Håber at nogen genkender problemet eller kan se fejlen.
På forhånd tak
Steen Nielsen
| |
Lauritz Jensen (09-01-2001)
| Kommentar Fra : Lauritz Jensen |
Dato : 09-01-01 00:05 |
|
Steen Nielsen wrote:
>
> Kan jeg være sikker på, at min ADO forbindelse altid læser de sidste
> nye data fra databasen, eller kunne det tænkes, at ADO forbindelsen
> genbruger et eksisterende recordset, hvis dette kun er få sekunder
> gammelt?
Jeg vil snarre tro at det er din asp-side, som bliver cachet af din
browser (eller en proxy imellem serveren og din browser). Prøv istedet
for dine no-cache-meta-tags at sende dem med Response.AddHeader. Prøv
evt. også at udskrive en dato (med sekunder) på din asp-side, så du kan
se om asp-siden bliver cachet.
--
Lauritz
| |
Steen Nielsen (09-01-2001)
| Kommentar Fra : Steen Nielsen |
Dato : 09-01-01 17:12 |
|
Efter jeg har ændret mine no-cache-meta-tags til Response.AddHeader
og clearet min cache ser det ud til at virke.
Tak for hjælpen
Steen Nielsen.
Lauritz Jensen wrote in message <3A5A47A3.D20D6840@hotmail.com>...
>Steen Nielsen wrote:
>>
>> Kan jeg være sikker på, at min ADO forbindelse altid læser de sidste
>> nye data fra databasen, eller kunne det tænkes, at ADO forbindelsen
>> genbruger et eksisterende recordset, hvis dette kun er få sekunder
>> gammelt?
>
>Jeg vil snarre tro at det er din asp-side, som bliver cachet af din
>browser (eller en proxy imellem serveren og din browser). Prøv istedet
>for dine no-cache-meta-tags at sende dem med Response.AddHeader. Prøv
>evt. også at udskrive en dato (med sekunder) på din asp-side, så du kan
>se om asp-siden bliver cachet.
>
>--
>Lauritz
| |
|
|