---
title: "Diskussionsforum-Problem!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11642-diskussionsforum-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "klockren"
published: "2001-09-15T08:19:00.000Z"
updated: "2001-09-16T18:01:00.000Z"
replies: 16
views: 287
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/11642-diskussionsforum-problem"
---

# Diskussionsforum-Problem!

## #1 — klockren, 2001-09-15T08:19Z

Hej,
jag tänkte lägga in ett eget diskussforum på siten. Då jag är asp-nybörjare kopierade jag ett befintligt forum till att börja med. Koden till detta finns att ladda ned på [www.tilja.net.](http://www.tilja.net.)  Dock får jag detta felmeddelande när jag försöker publicera ett inlägg:

ADODB.Recordset.1 error '80004005' 

SQLState: 37000
Native Error Code: -3502
\[INTERSOLV\]\[ODBC SequeLink driver\]\[ACCESS\]\[Microsoft\]\[ODBC Microsoft Access Driver\] Syntax error in INSERT INTO statement.

/forum/response_ins.asp, line 57

Dessutom visas hälsningmeddelandet (den enda post som redan är inlagd i databasen) 100 gånger. Varför?

Det enda jag har modifierat i filerna är raden
**Session("databas") = "filedsn=" & Server.MapPath("forum.dsn") & ";DBQ=" & Server.MapPath("forum.mdb")&";"**

som jag bytte mot

**Session("databas") = "DSN=a1234-forum;Password=mitt_lösenord"**

eftersom mitt webhotell kräver att man skapar DSN-kopplingar via deras administrativa gränssnitt.

Detta gör att jag inte kan använda mig av den bifogade forum.dsn-filen. Kan det ha någon betydelse?

Mitt kraschande forum finns att beskåda på  <http://skolportalen.net/forum/default.asp> 

/Med vänliga hälsningar (och hopp om ett förklarande svar :) ), Jonas

Permalänk: https://www.webforum.nu/p/11642

## #2 — @nders, 2001-09-15T08:34Z

Hur ser INSERT-frågan ut då?

Permalänk: https://www.webforum.nu/p/286682

## #3 — klockren, 2001-09-15T08:47Z

Antar att detta är insert-satserna:

		Rs("posted_by") = FixaTecken(TRIM(Request.Form("posted_by")))
		Rs("email") = FixaTecken(Request.Form("email"))
		Rs("text") = FixaTecken(TRIM(Request.Form("text")))
		Rs("ip") = Request.Servervariables("REMOTE_ADDR")
		Rs("date") = Now
		Rs.Update
		Rs.Close

/Jonas

Permalänk: https://www.webforum.nu/p/286683

## #4 — klockren, 2001-09-15T09:13Z

Ett tillägg:
Källkodsfilerna finns att kolla på här:

[response_ins.txt](http://skolportalen.net/forum/response_ins.txt) Det är i denna fil felmeddelandet uppstår!

[default.txt](http://skolportalen.net/forum/default.txt)

[response.txt](http://skolportalen.net/forum/response.txt)

[settings.txt](http://skolportalen.net/forum/settings.txt)

Permalänk: https://www.webforum.nu/p/286684

## #5 — @nders, 2001-09-15T09:21Z

Oj, det var ganska mycket där jag inte tycker om. ;)

Dels är fältnamnen under all kritik. Dels används .AddNew för att lägga till poster i tabellen. Dessutom hämtas allt innehåll i tabellen då något ska läggas till. Usch, skäms, tilja. ;)

Kan du ge mig en lista på vilka fält som finns i accesstabellen och vad det är för datatyper, så ska vi nog kunna få detta gjort på ett bättre sätt, med en korrekt INSERT-fråga.

Mvh,

Permalänk: https://www.webforum.nu/p/286685

## #6 — klockren, 2001-09-15T09:43Z

Tjena,

Databasen forum.mdb innehåller tabellen questions med följande fält:
id -\> räknare
ref_id -\> tal
subject -\> text
text -\> PM
date -\> datum/tid
ref_date -\> datum/tid
posted_by -\> text
email -\> text
ip -\> text

Hela databasen finns här, om någon vill ta sig en ännu närmare titt!
[Databasen](http://skolportalen.net/forum/forum.db)

Permalänk: https://www.webforum.nu/p/286686

## #7 — klockren, 2001-09-15T09:48Z

Hoppsan! Fel URL!
[Så här ska den vara!](http://skolportalen.net/forum/forum.mdb)

Permalänk: https://www.webforum.nu/p/286687

## #8 — @nders, 2001-09-15T10:12Z

Ersätt följande:

```
[red]
		set databas=server.createobject("adodb.connection")
		set Rs = server.createobject("adodb.recordset")
		databas.open session("databas")
		
		
		Rs.Open "questions",databas,1,2
		Rs.AddNew
		Rs("subject") = FixaTecken(TRIM(Request.Form("subject")))
		
		IF Request.Form("id")="main" THEN
			Rs("ref_id") = 0
		ELSE
			Rs("ref_id") = FixaTecken(TRIM(Request.Form("id")))
		END IF
		
		Rs("posted_by") = FixaTecken(TRIM(Request.Form("posted_by")))
		Rs("email") = FixaTecken(Request.Form("email"))
		Rs("text") = FixaTecken(TRIM(Request.Form("text")))
		Rs("ip") = Request.Servervariables("REMOTE_ADDR")
		Rs("date") = Now
		Rs.Update
		Rs.Close
```

med:

```
set databas=server.createobject("adodb.connection")
databas.open session("databas")
IF Request.Form("id")="main" THEN
	ref_id = 0
ELSE
	ref_id = FixaTecken(TRIM(Request.Form("id")))
END IF
		
strSQL = "INSERT INTO questions (ref_id, subject, [text], [date], posted_by, email, ip) VALUES (" & ref_id & ", '" & FixaTecken(TRIM(Request.Form("subject"))) & "', " &_
" '" & FixaTecken(TRIM(Request.Form("text"))) & "', #" & Now() & "#, " &_
" '" & FixaTecken(TRIM(Request.Form("posted_by"))) & "', '" & FixaTecken(Request.Form("email")) & "', " &_
" '" & Request.Servervariables("REMOTE_ADDR") & "')"
databas.Execute strSQL,,128[/red]
```

Sen ropar du! :)

Mvh,

**redigering:** Man kan redigera sitt inlägg också, om man exempelvis skriver fel sökväg till en databas. Det gör man genom att klicka på 'penna-papper'-ikonen ovanför inlägget. :)

Permalänk: https://www.webforum.nu/p/286688

## #9 — klockren, 2001-09-15T10:45Z

Verkligen ett jättetack för tipset, nu går det att publicera inlägg i forumet!

Dock kvarstår problemet med den här loopen (som finns i default.asp):

    \<%
    count = 0
    Do Until Rs.EOF OR count = showmsgnr
    	Id = Rs("id")
    		SQLStmt = "SELECT \* FROM questions WHERE ref_id = " & Id
		RS2.open SQLStmt, databas,1
		replycount = 0
			Do Until RS2.EOF
    				replycount = replycount + 1
    				Rs2.MoveNext
    			LOOP
    		Rs2.Close
    		
    Response.Write "\<tr onMouseOver=""this.style.backgroundColor='#"& mouseover &"';"" onMouseOut=""this.style.backgroundColor='';""\>\<td\>"
    IF RS("date") \> date - 1 THEN Response.Write txt_new & " »" END IF
    Response.Write "\</td\>\<td\>\<a href='response.asp?id=" & RS("id") & "'\>" & Server.HTMLEncode(Rs("subject")) & "\</a\>\</td\>\<td\>" & Server.HTMLEncode(Rs("posted_by")) & "\</td\>\<td\>" & Rs("date") & "\</td\>\<td align='middle'\>" & replycount & " \</td\>\</tr\>"
    	
    	count = count + 1
    	Rs.MoveNext
    	LOOP
    %\>

Den skriver nämligen ut meddelandena 100 gånger! Jag ser inte riktigt hur jag kan åtgärda detta, någon som har ett litet tips?

Vänliga hälsningar
Jonas

\[Redigerat av klockren den 15 sep 2001\]

Permalänk: https://www.webforum.nu/p/286689

## #10 — emission, 2001-09-15T11:12Z

Lite brötig kod...

Hur menar du att den skriver ut 100 gånger?

Så länge kan du byta ut 

SQLStmt = "SELECT \* FROM questions WHERE ref_id = " & Id
RS2.open SQLStmt, databas,1
replycount = 0
Do Until RS2.EOF
replycount = replycount + 1
Rs2.MoveNext
LOOP

mot

SQLStmt = "SELECT COUNT(\*) FROM questions WHERE ref_id = " & Id
RS2.open SQLStmt, databas,1
replycount = RS2(0)

... egentligen kan man lika gärna plocka ut svarsantalet i den första sökningen. Ska kolla hur den ser ut.

Permalänk: https://www.webforum.nu/p/286690

## #11 — klockren, 2001-09-15T11:25Z

Det senaste inlägget skrivs ut 100 gånger, alltså 100 rader. :(
Vilket är maxantalet för antal inlägg som visas i forumet. x(

\[Redigerat av klockren den 15 sep 2001\]

Permalänk: https://www.webforum.nu/p/286691

## #12 — klockren, 2001-09-16T07:46Z

:( snyft :(
Är det ingen som ser felet, varför utskriften av inlägg aldrig slutar loopa, utan senast inlagda inlägget skrivs ut maxantalet gånger, alltså hundra.

Utskriftsfunktionen ligger som sagt i default.asp, som jag har länkat till tidigare.

/Jonas

\[Redigerat av klockren den 16 sep 2001\]

Permalänk: https://www.webforum.nu/p/286692

## #13 — @nders, 2001-09-16T08:31Z

Hmm, detta är lite lustigt. Jag laddade hem tiljas forum, slängde in det i inetpub och körde igång. Det fungerade perfekt! Nu kör ju jag visserligen iis5, och inte pws, men jag vet inte vad det skulle göra för skillnad.

Prova dock att byta följande:

```
<%
count = 0
Do Until Rs.EOF OR count = showmsgnr
Id = Rs("id")
SQLStmt = "SELECT * FROM questions WHERE ref_id = " & Id
RS2.open SQLStmt, databas,1
replycount = 0
Do Until RS2.EOF
replycount = replycount + 1
Rs2.MoveNext
LOOP
Rs2.Close

Response.Write "<tr onMouseOver=""this.style.backgroundColor='#"& mouseover &"';"" onMouseOut=""this.style.backgroundColor='';""><td>"
IF RS("date") > date - 1 THEN Response.Write txt_new & " »" END IF
Response.Write "</td><td><a href='response.asp?id=" & RS("id") & "'>" & Server.HTMLEncode(Rs("subject")) & "</a></td><td>" & Server.HTMLEncode(Rs("posted_by")) & "</td><td>" & Rs("date") & "</td><td align='middle'>" & replycount & " </td></tr>"

count = count + 1
Rs.MoveNext
LOOP
%>
```

till:

```
<%
count = 0
Do Until Rs.EOF
Id = Rs("id")
SQLStmt = "SELECT COUNT(*) FROM questions WHERE ref_id = " & Id
RS2.open SQLStmt, databas,1
replycount = RS2(0)
Rs2.Close

Response.Write "<tr onMouseOver=""this.style.backgroundColor='#"& mouseover &"';"" onMouseOut=""this.style.backgroundColor='';""><td>"
IF RS("date") > date - 1 THEN Response.Write txt_new & " »" END IF
Response.Write "</td><td><a href='response.asp?id=" & RS("id") & "'>" & Server.HTMLEncode(Rs("subject")) & "</a></td><td>" & Server.HTMLEncode(Rs("posted_by")) & "</td><td>" & Rs("date") & "</td><td align='middle'>" & replycount & " </td></tr>"

count = count + 1
if count = showmsgnr then exit do
Rs.MoveNext
LOOP
%>
```

Mvh,

Permalänk: https://www.webforum.nu/p/286693

## #14 — klockren, 2001-09-16T09:05Z

Nej, det busar fortfarande med mig, fruktansvärt märkligt.

Som jag skrev i första inlägget var jag dock tvungen att byta raden Det enda jag har modifierat i filerna är raden
Session("databas") = "filedsn=" & Server.MapPath("forum.dsn") & ";DBQ=" & Server.MapPath("forum.mdb")&";"

mot

Session("databas") = "DSN=a1234-forum;Password=mitt_lösenord"

Det gör ju att jag inte använder tiljas DSN-fil, kan det ha något med det att göra?

Permalänk: https://www.webforum.nu/p/286694

## #15 — @nders, 2001-09-16T09:10Z

> Det gör ju att jag inte använder tiljas DSN-fil, kan det ha något med det att göra?

Nej, det har jag svårt att tänka mig.
Jag funderar vidare...

Mvh,

Permalänk: https://www.webforum.nu/p/286695

## #16 — Grummel, 2001-09-16T11:23Z

Vad är det som inte är bra med att använda .addnew? Prestanda?

Permalänk: https://www.webforum.nu/p/286696

## #17 — Vide, 2001-09-16T18:01Z

Ja, visst finns det tillfällen då .addnew kan vara bra, men oftast räcker det med en riktig "Insert" via SQL.

Grejen med .addnew är att du först måste hämta ett recordset ifrån databasen, och det är ju att ta ett steg extra för att lägga till, bättre då att direkt lägga till. :)

Permalänk: https://www.webforum.nu/p/286697

---

Tråden på webben: https://www.webforum.nu/amne/asp/11642-diskussionsforum-problem
