webForumDet fria alternativet

Problem med global.asa > den utför ej åtgärden

ASP

6 svar · 365 visningar · startad av Dashi

Medlem sedan jan. 2005296 inlägg
Frågan#1

har lite problem med en global.asa fil, den vill inte göra det den ska göra, vad är fel??

<SCRIPT LANGUAGE=VBScript RUNAT=Server> 

Sub Session_OnEnd

Dim  connect, RecSet, Sessionen, radera, databasen
Sessionen = Session("user")
databasen ="jaha\databas.mdb"

Set connect = Server.CreateObject ("ADODB.Connection")
Set RecSet = Server.CreateObject ("ADODB.Recordset")
connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(databasen)

radera = "SELECT * FROM kundkorg WHERE user = " & Sessionen
RecSet.Open radera, connect, 3, 3

Do Until RecSet.EOF 

RecSet.Delete

RecSet.Movenext
Loop

RecSet.Close
connect.Close

End Sub

</SCRIPT>

Mvh //Darek

Medlem sedan dec. 200012 464 inlägg
#2

Det går inte att använda server.mappath i Session_Onend Du får ange en explicit sökväg.

Medlem sedan feb. 200112 078 inlägg
#3

Skapar du ett ADODB Recordset för att radera poster ur databasen? Det verkar inte så optimalt.

Nej, gör så här istället;

<SCRIPT LANGUAGE=VBScript RUNAT=Server> 

Sub Session_OnEnd

   Dim objConn, sDatabasePath, sSQLDeleteFromCart

   sDatabasePath = "c:\data\databas.mdb" 

   Set objConn = Server.CreateObject("ADODB.Connection")
   objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDatabasePath

   sSQLDeleteFromCart = "DELETE FROM kundkorg WHERE user = " & Session("user")
   objConn.Execute sSQLDeleteFromCart,,128

   Set objConn = Nothing

End Sub

</SCRIPT>

Jag föreslår även, som jag sagt innan, att du använder OLEDB Jet-drivrutinen istället för den gamla Access-drivrutinen.

Medlem sedan jan. 2005296 inlägg
#4

LarsG: okej tack då vet jag det :)

OveRRidE: japp pga att jag använder ``Do Until RecSet.EOF´´

hehe, men det ser rörigt ut :)

objConn är istället för connect som jag använder?

förklara detta för det fattar jag inte?
``objConn.Execute sSQLDeleteFromCart,,128´´

kan man använda sig av denna ``objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sDatabasePath´´ men ändå ha en MapPath, asså i vanliga fall?

Mvh //Darek

Medlem sedan apr. 20022 743 inlägg
#5

Dashi skrev:

förklara detta för det fattar jag inte?
``objConn.Execute sSQLDeleteFromCart,,128´´

Den exkeverar sql-satsen utan att skapa ett recordset.

Medlem sedan jan. 2005296 inlägg
#6

Poffe skrev:

Dashi skrev:

förklara detta för det fattar jag inte?
``objConn.Execute sSQLDeleteFromCart,,128´´

Den exkeverar sql-satsen utan att skapa ett recordset.

det första förstår jag till en viss del.. men vad står ,,128 för??

Medlem sedan apr. 20022 743 inlägg
#7

Det är det som gör att den inte skapar ett recordset.

270 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)