Gör det lite enklare för dig:
set con=server.createobject("adodb.connection")
con.open "mindsn","user","pw"
ssql = " Insert Into forum (did,amne,orig,namn,epost,inlagg,datum) values
(did,'" & amne & "','" & orig & "') "
con.execute ssql
6 svar · 152 visningar · startad av hyperD
Hoppas att det finns någon vänlig själv som har lust att hjälpa mig med följande
problem, hittade en kodsnutt i en bok här hemma för att göra ett forum,
allting funkar, nästan, hur mycket jag än skriver och har mig så kommer det
nämligen inte in något inlägg i databasen. Någon som kan kolla vad felet är?
<!--# INCLUDE FILE="Adovbs.Inc" -->
<%
id = Request.Querystring("inlaggID")
oldamne = Request.Querystring("amne")
upd = Request.Form("dummy")
If Len(upd) > 0 Then
If Len(oldamne) \> 0 Then
samne = oldamne
Else
samne = Request.Form("Amne")
End If
snamn = Request.Form("Namn")
sepost = Request.Form("Epost")
sinlagg = Request.Form("Inlagg")
End If
%>
<form method="post"
action="skapa_inlagg.asp?inlaggID=<%=id%>&Amne=<%=Server.URLEncode(oldamne)%
>" name="inlagg">
<a href="forum.asp">tillbaka till forumet</a>
<%
If Len(upd) > 0 Then
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=d:\hotell\www\rby\johannis\db\bredband.mdb"
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection = Conn
ssql = " Insert Into forum (did,amne,orig,namn,epost,inlagg,datum) values
(?,?,?,?,?,?,?) "
Response.Write ssql & "<br>"
Cmd.CommandText = ssql
Cmd.CommandType = adCmdText
Response.Write "id = " & id & " <br> "
If Len(id) < 1 Then id = "0"
Set prm = Cmd.CreateParameter (,adVarChar,,Len(samne),samne)
cmd.Paratmeters.Append prm
If Len(oldamne) > 0 Then
Sorig = False
Else
Sorig = True
End If
Set prm = Cmd.CreateParameter (,adBoolean ,,,cBool(Sorig))
Cmd.Parameters.Append prm
Set prm = Cmd.CreateParameter (,adVarChar ,,Len(snamn),snamn)
Cmd.Parameters.Append prm
If NOT (Len(sepost) > 0) Then sepost = "ingen adress"
Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sepostn),sepost)
Cmd.Parameters.Append prm
Set prm = Cmd.CreateParameter (,adVarChar ,,Len(sinlagg),sinlagg)
Cmd.Parameters.Append prm
Set prm = Cmd.CreateParameter (,adDBDate ,,,date)
Cmd.Parameters.Append prm
Conn.BeginTrans
If Len(oldamne) > o Then
supdate = "Update forum Set Antal = Antal + 1, senaste = #" & date
supdate = supdate & "# Where IID = " & id
Response.Write supdate & " <br> "
Conn.Execute supdate
End If
Response.Write "Params: "
For z = 0 To Cmd.Parameters.Count -1
Response.Write Cmd.Paramteres.Item(z).Value & " "
Next
Response.Write "<br>"
Cmd.Execute
Conn.CommitTrans
Response.Write "Sparad"
Else
%>
Ämne:
<%
If Len(oldamne) > 0 Then
Response.Write oldamne
%>
<input type="hidden" name="Amne" size="20" Value="<%=oldamne%>">
<% else %>
<input type="text" Name="Amne" size="20">
<% end if %>
Namn: <input type="text" Name="namn" size="20">
<br>
Epost: <input type="text" Name="Epost" size="20">
<br>
Inlägg: <textarea rows="4" Name="Inlagg" Cols="40"></textarea>
<input type="hidden" Name="dummy" size="20">
<input type="submit" Value="Skicka" Name="B1">
<input type="Reset" Value="Återställ" Name="Reset">
</form>
<% end if %>
Gör det lite enklare för dig:
set con=server.createobject("adodb.connection")
con.open "mindsn","user","pw"
ssql = " Insert Into forum (did,amne,orig,namn,epost,inlagg,datum) values
(did,'" & amne & "','" & orig & "') "
con.execute ssql
provade att ändra
ssql = " Insert Into forum (did,amne,orig,namn,epost,inlagg,datum) values
(?,?,?,?,?,?,?) "
till det du sa, men fortfarande händer ingenting =( kollade även på din sida, där fanns ett forum, men hmm.. verkar va allt för "stort" för att jag ska behöva det, det enda jag vill ha är, ett enkelt forum, där man kan läsa inlägg, skriva ett nytt och besvara. ska de va så svårt =(
jag gav upp hoppet med den där forumet, provade en annan kodsnutt, men då så
får jag ett annat felmeddelande, nämligen.
ADODB.Recordset error '800a0cb3'
The operation requested by the application is not supported by the provider.
/johannis/bredband/forum/laggtill.asp, line 26
på följande kodsnutt:
<%
Dim RSAddMessage
Dim SQL
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=d:\hotell\www\rby\johannis\db\bredband_forum.mdb"
SQL = "SELECT * FROM forum WHERE 1=2"
Set RSAddMessage = Conn.Execute (SQL)
%>
<%
RSAddMessage.AddNew <---------------------------------
rad 26
RSAddMessage("amne") = Request.Form("txtAmne")
RSAddMessage("namn") = Request.Form("namn")
If Request.Form("epost") \> 0 Then
RsAddMessage("epost") = Request.Form("epost")
Else
RsAddMessage("epost") = "ingen adress"
End If
RsAddMessage("inlagg") = Request.Form("txtInlagg")
RsAddMessage("datum") = Now()
If Request.Querystring("id") \> 0 Then
RsAddMessage("orig") = TRUE
Else
RsAddMessage("orig") = FALSE
End If
If Request.Querystring("id") \> 0 Then
supdate = "Update forum set antal = antal + 1, senaste = #" & Now() &
"# Where IID = " & Request.Querystring("id")
Conn.Execute supdate
End If
RsAddMessage.Update
%>
kan någon hjälpa mig med hur jag ska skriva för att det ska funka, eller något annat sätt man kan göra det på så att det fungerar?
mvh / hyperD
Om du skall använda .AddNew och .Update så måste du öppna recordsetet på ett annat sätt.. Läs även de kurser jag skrivit på SAND OnLine för att förstå skillnaderna..
rst.open "tabell", con, 3, 3
tackar för hjälpen! men i slutändan så visade sig att mitt webhotell helt plöstligt ändrat så jag inte hade några skrivrättigheter till databasen =(