webForumDet fria alternativet

Varför funkar det ej?

ASPur ASP

2 svar · 225 visningar · startad av nybörjare

nybörjareMedlem sedan nov. 200178 inlägg
#1

Hejsan... varför funkar ej denna koden?

<% 
' variabler
if Request.QueryString("regga") = "dej"  then 
namn = Request.Form("namn") 
databas = Server.MapPath("um.mdb") 

' öppnar databasen 
Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& databas 

' Öppnar Tabellen 
Set RecSet = Server.CreateObject("ADODB.Recordset") 
SQL = "SELECT * FROM logga WHERE namn = '"& namn &"' "

RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic 

If RecSet.EOF then

Set Con = Server.CreateObject("ADODB.Connection") 
Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("um.mdb")&";"

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

Addera = "Select * From logga"
RecSet2.Open Addera, Con, adOpenStatic, adLockOptimistic

RecSet2.AddNew

RecSet2("los") = Request.Form("los")
RecSet2("namn") = Request.Form("namn")

RecSet2.Close 
Con.Close 

Response.write "<br><b>Nu är du klar reggad</b>"

Else 
RecSet.Close 
Connect.Close 
response.write "<br><b>Det finns redan en som har valt det namnet var god välj ett nytt...</b>"
End if
End If %>

När ja kör den får ja fel mess

Error Type:
ADODB.Recordset (0x800A0C93)
Operation is not allowed in this context.
/about.asp, line 144

Och rad 144 är: Con.Close

sawMedlem sedan mars 20011 880 inlägg
#2

Varför har du två connections?
Du kan ju använda samma connections, trots att du har två recordsset.
Ett annat råd, öppna inte din SQL med astriks (*) det är bättre och snabbare om du specifisera vad du vill ha.
Varför du får fel på 144 vet jag inte, men jag kan tänka mig att om du städar upp i din kod, kanske det blir enklare att se felet.
( med städa menar jag inte att det är slarvigt gjort, utan att du kan optimera den bättre, t ex din sista SQL kan vara en insert istället för att öppna ett nytt recordset).

easMedlem sedan sep. 2001269 inlägg
#3

Du måste köra RecSet2.update när du lagt till grejer i db:n!

Sätt in det före RecSet2.Close.

126 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)