---
title: "skriver inte till db, varför?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/95847-skriver-inte-till-db-varför"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "timedia"
published: "2004-01-27T17:06:38.000Z"
updated: "2004-01-27T17:28:41.000Z"
replies: 6
views: 264
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/95847-skriver-inte-till-db-varför"
---

# skriver inte till db, varför?

## #1 — timedia, 2004-01-27T17:06Z

```
If Request.Form("meld") = "yes" Then
Set RecSet = Server.CreateObject("ADODB.Recordset")
recipientcheck = "SELECT * FROM email"
RecSet.Open recipientcheck, DatabaseConnection, adOpenStatic, adLockOptimistic
On Error Resume Next

RecSet.Find "email LIKE '"& mailadd &"'"
If RecSet.EOF Then
	RecSet.AddNew
	RecSet("email") = addemail
	RecSet("date") = date()
	RecSet("ip") = Request.ServerVariables("REMOTE_ADDR")
		RecSet.Update
    		RecSet.Close
    	Set	RecSet = Nothing
   Response.Write "<center><p>(Du har nu lagts till som nyhetsbrevsprenumerant.)</p></center>"
	Else
   Response.Write "Tack för ditt svar."
End If

	End If
```

Har ett tävlingsformulär där man samtidigt kan välja att prenumerera på ett nyhetsbrev. Mailet går iväg som det ska, men den vill inte lägga till epostadressen i db  :q

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

## #2 — @nders, 2004-01-27T17:09Z

Till att börja med tar du bort *On error resume next* och ser om det blir något felmeddelande när du kör koden.

*On error resume next* bör bannlysas från all kod under utveckling.

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

## #3 — LarsG, 2004-01-27T17:11Z

1) Om du har on error resume next så måste du också kontrollera felkoden efter varje anrop.
2) Använd inte filter, lägg villkoret i SQL-satsen
3) Använd inte recordset för att updatera, använd SQL istället.

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

## #4 — timedia, 2004-01-27T17:11Z

Ok (har bannlyst on error resume next nu) :r 
Den skriver ut (Du har nu lagts till som nyhetsbrevsprenumerant.) alltså utan error, men det händer ändå inget i db.

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

## #5 — @nders, 2004-01-27T17:15Z

Dessutom:
\* När du lägger till data i en tabell, rekommenderar jag att du använder rena SQL-frågor, dvs INSERT.
\* Varför använder du *LIKE* i din SQL-fråga när du gör exakt jämförelse (dvs utan wildcards)? Använd =.
\* *Date* är inget bra namn på en kolumn, ordet är reserverat. Klamra (enligt nedan), eller helst av allt; byt namn på fältet.

Jag hade skrivit koden så här:

```
If Request.Form("meld") = "yes" Then
	recipientcheck = "SELECT * FROM email where email = '"& Replace(mailadd, "'", "''") &"'"
	set RecSet = DatabaseConnection.Execute(recipientcheck)
	If RecSet.EOF Then
		strSQL = "INSERT INTO email (email, [date], ip) VALUES ('" & replace(mailadd, "'", "''") & "', date(), '" & Request.ServerVariables("REMOTE_ADDR") & "')"
		DatabaseConnection.Execute strSQL,,128
		Response.Write "<center><p>(Du har nu lagts till som nyhetsbrevsprenumerant.)</p></center>"
	Else
		Response.Write "Tack för ditt svar."
	End If
End If
```

Edit: hoppsan, här händer det grejer medans man skriver. ;)

Mvh

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

## #6 — timedia, 2004-01-27T17:26Z

Och självklart funkar det nu  :) 
...men du gör ju fel ibland du också ser jag -hehe  :e

```
Replace(mailadd, "'", "'')
```

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

## #7 — @nders, 2004-01-27T17:28Z

> **timedia skrev:**
>
> ...men du gör ju fel ibland du också ser jag -hehe  :e

Oh ja. Du skulle bara veta. :)

Jag redigerar dock.

Mvh

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/95847-skriver-inte-till-db-varför
