webForumDet fria alternativet

Säkert enkelt men...

ASP

8 svar · 138 visningar · startad av aleborg

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

jag är nybörjare på asp :)

Vad är felet?

<%
dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../../data/news.mdb")
set rs = conn.Execute("SELECT * FROM Produkter WHERE 1=2")
rs.Open,Conn,1,2
rs AddNew
rs("Produktnamn")= Request.Form("rubr")
rs("Datum")= Request.Form("date")
rs("Produkt")= Request.Form("beskr")
rs("Fotografi")= Request.Form("pic")
rs.Update
rs.Close
conn.close
%>

Tacksam för hjälp!

Medlem sedan dec. 19996 721 inlägg
#2

Svårt att säga om du inte visar felmeddelandet.

rs("Datum")= CDate(Request.Form("date"))

känns troligt.

Ett tips är att du redan nu lär dig att använda SQL (med INSERT,UPDATE etc.) i stället för AddNew etc. Det är en dålig teknik som IDGs webstudio tyvärr prånglat på många.

Välkommen hit, förresten!! :)

Medlem sedan jan. 20013 341 inlägg
#3

Tack!
ADODB.Recordset fel '800a0e79'
Åtgärden är inte tillåten när objektet är öppet.

/mor/newssucc.asp, line 77

står det!

Medlem sedan jan. 20013 341 inlägg
#4

Sitter med boken ASP av Erik Ronne
Tyvärr så är allting uppbyggt på dsn
uppkoppling till db:n, en rad om
dsn lös koppling!

Kan man använda sql koder ändå?

Medlem sedan dec. 19996 721 inlägg
#5

...och på rad 77 står?

Kan man använda sql koder ändå?

Javisst. Huruvida man kopplar upp med DSN eller inte spelar ingen roll. Skillnaden är mellan ADO-varianten

set rs=server.createobject("ADODB.Recordset")
rs.open "tabell",conn,1,3
rs.Addnew
rs("kolumn")=värde

och med SQL

conn.execute "INSERT INTO tabell (kolumn) VALUES(" & värde & ")"

Det senare är helt klart att föredra.

[Redigerat av emission den 29 jan 2001]

Medlem sedan jan. 20013 341 inlägg
#6

rs.Open,Conn,1,2

hur skulle då min kod se ut?

[Redigerat av aleborg den 29 jan 2001]

Medlem sedan dec. 19996 721 inlägg
#7

Nu ser jag ju....

Du öppnar recordsetet två gpnger. En gång med execute och en gång med open.

Fimpa execute-raden och ändra open.raden till

rs.Open "SELECT * FROM Produkter WHERE 1=2",Conn,1,2

Medlem sedan jan. 20013 341 inlägg
#8

Körningsfel i Microsoft VBScript fel '800a01a8'
Objekt krävs.: ''

/mor/newssucc.asp, line 76

rad 76:
rs.Open "SELECT * FROM Produkter WHERE 1=2",Conn,1,2

Medlem sedan dec. 19996 721 inlägg
#9

Aargh...nu borde jag visst gå och lägga mig.

Du måste ju skapa recordsetet först

set rs=server.createobject("ADODB.Recordset")

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