webForumDet fria alternativet

Åtgärden som programmet begärt stöds inte av leverantören..

ASP

11 svar · 214 visningar · startad av Hulth

Medlem sedan juni 2001272 inlägg
Frågan#1

Varför får jag detta felmedelandet av pws?

Jag har win98 och Access 97

ADODB.Recordset fel '800a0cb3'

Åtgärden som programmet begärt stöds inte av leverantören.

/icq/add.asp, rad 15

<!--#include file="adovbs.inc"-->
<%
	' Sökvägen till din databas
	db_ad = Server.MapPath("lista.mdb")

	If Request.Querystring("vad") = "save" Then

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & db_ad
	
	Set RecSet = Server.CreateObject("ADODB.RecordSet")
	hamta = "SELECT * FROM lista"
	RecSet.Open hamta, Connect, adOpenStatic

	RecSet.AddNew ' <-- rad 15

	RecSet("namn")	= Request.Form("namn")
	RecSet("email")	= Request.Form("email")
	RecSet("icq")	= Request.Form("icq")
	Recset("add")	= Request.Form("add")
	RecSet("ip")	= Request.ServerVariables("REMOTE_ADDR")

	RecSet.Update
	RecSet.Close

	Set RecSet = Nothing
	Connect.Close
	Set Connect = Nothing

	Response.Redirect "visa.asp"

	End If

	If Request.Querystring("vad") = "" Then

	Set db = Server.CreateObject("ADODB.Connection")
	db.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& db_ad
 
	SQL = "SELECT Count(*) From lista"
	Set rs = db.Execute(SQL)

	antal = RS.Fields(0)
%>
<html>
<head>
<title>ICQ-lista ver 1.0 av David Hulth</title>
</head>
<body>
<table align="center" width="700" border="0" cellpadding="0" cellspacing="0">
<tr><td><font face="Verdana" size="4" color="#FF0000">ICQ-listan ver 1.0 av David Hulth</font></td></tr>
<tr><td><font face="Verdana" size="2" color="#003399"><b>Gör som <%=antal%> andra och gå med i ICQ-listan du också</b></font></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td>
<table align="center" width="100%" border="0" cellpadding="0" cellspacing="0">
<form action="add.asp?vad=save" method="post">
	<tr><td><div align="right"><font face="Verdana" size="1"><b>Ditt namn</b></font></div></td><td>&nbsp;</td><td><input type="text" name="namn"></td></tr>
	<tr><td><div align="right"><font face="Verdana" size="1"><b>Din Email</b></font></div></td><td>&nbsp;</td><td><input type="text" name="email"></td></tr>
	<tr><td><div align="right"><font face="Verdana" size="1"><b>Ditt ICQ-nummer</b></font></div></td><td>&nbsp;</td><td><input type="text" name="icq"></td></tr>
	<tr><td><div align="right"><font face="Verdana" size="1"><b>Auth</b></font></div></td><td>&nbsp;</td><td><select name="auth"><option value="Alltid" selected>Alltid</option><option value="Tillstånd krävs">Tillstånd krävs</option></select></td></tr>
	<tr><td><div align="right"><input type="reset" name="Nollställ"></div></td><td>&nbsp;</td><td><input type="submit" value="Skicka"></td></tr>
</form>
</table>
</td></tr>
</table>
</body>
</html>
<% End If %>

------------------
//Hulth

Medlem sedan juni 200032 967 inlägg
#2

Om du ska lägga till data kan du nog inte öppna ditt recordset med en statisk cursor. Försök med adOpenDynamic istället för adOpenStatic, eller ännu hellre, skriv en INSERT-fråga för att lägga till data.

Mvh,

------------------
Don't panic!

Medlem sedan juni 2001272 inlägg
#3

kom på det nu.. är lite trött... ;)

------------------
//Hulth

Medlem sedan juni 2001272 inlägg
#4

Hur skriver jag en insert? vad ska jag ersätta då?

är lite rookie på databaser.. kör alltid med recordset

------------------
//Hulth

Medlem sedan juni 200032 967 inlägg
#5

Jag hjälper dig en liten bit på väg, med syntaxen. :)

strSQL = "INSERT INTO tblTable (fldField1, fldField2, fldField3) VALUES ('" & strValue1 & "', " & intValue1 & ", #" & dteValue1 & "#)"

Det blir lite krångligare, men det blir färre kodrader, bättre prestanda, och du blir en bättre man. Eller kvinna. :)

Mvh,

------------------
Don't panic!

Medlem sedan juni 2001272 inlägg
#6

Föredrar man..

ska genast testa din kod..

------------------
//Hulth

Medlem sedan juni 2001272 inlägg
#7

Hur ska jag anropa insert-koden då?

------------------
//Hulth

Medlem sedan juni 2001272 inlägg
#8

Du tror inte du kunde skriva fullständig kod inklusive koppling till databas?

alla variabler osv finns i första inlägget i denna tråden..

------------------
//Hulth

Medlem sedan dec. 200012 464 inlägg
#9

Det är några besvärligheter med insert. Det första är att man måste anpassa sig till vilka datatyper som kolumnerna har, nu förutsätter jag att alla kolumner är av typen text och dessa värden skall anges inom ' i insert-statementet. Om det är numeriska värden så anger man inget alls. Anledningen till att jag gör replace är att det annars skulle bli fel om värdet i sig innehåller en '

Ett annat problem är reserverade ord. Nu har du använt ADD som kolumnnamn och då det är ett reserverat ord i SQL så måste man ange det inom []. Det är kanske bäst att byta namn om du skall börja använda sql direkt.

If Request.Querystring("vad") = "save" Then

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

sql = "insert into lista(namn,email,icq,[ADD],ip) values ('" & _
replace(request.form("namn"),"'","''") & "','" & _
replace(request.form("email"),"'","''") & "','" & _
replace(request.form("icq"),"'","''") & "','" & _
replace(request.form("add"),"'","''") & "','" & _
request.server_variables("REMOTE_ADDR") & "')"
connect.execute sql,,128

Connect.Close
Set Connect = Nothing

end if

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 2001272 inlägg
#10

Jag har ändrat add till auth... är denna koden rätt då?

If Request.Querystring("vad") = "save" Then
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & db_ad

sql = "insert into lista(namn,email,icq,auth,ip) values ('" & _
replace(request.form("namn"),"'","''") & "','" & _
replace(request.form("email"),"'","''") & "','" & _
replace(request.form("icq"),"'","''") & "','" & _
replace(request.form("auth"),"'","''") & "','" & _
request.server_variables("REMOTE_ADDR") & "')"
connect.execute sql,,128

Connect.Close
Set Connect = Nothing

end if

tack för hjälpen..

------------------
//Hulth

Medlem sedan dec. 200012 464 inlägg
#11

Ja, såvitt jag kan se och under förutsättning att alla kolumner är av typen text.

------------------
essentitia preter non sans multiplicandum

Medlem sedan juni 2001272 inlägg
#12

Tack för hjälpen Lars.

Allt fungerar.

------------------
//Hulth

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)