---
title: "vad skall det stå för att fungera?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6123-vad-skall-det-stå-för-att-fungera"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Percy"
published: "2000-07-25T19:36:00.000Z"
updated: "2000-07-25T20:29:00.000Z"
replies: 6
views: 245
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/6123-vad-skall-det-stå-för-att-fungera"
---

# vad skall det stå för att fungera?

## #1 — Percy, 2000-07-25T19:36Z

Hej!
Vad skall det stå för att fungera? Jag kan inte se något fel i SQL-satsen!

\<%
'sökväg till databas
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=links.mdb"
SQLStmt = "UPDATE links SET namn = "'" & Request.Form("namn") & "'" WHERE id = "'" & Request.Form("id") & "'""
Set RS = Connection.Execute(SQLStmt)
%\>

får följande felmeddelane som den hänvisar till rad 11 vilket är raden som börjar med set RS:
"Data type mismatch in criteria expression"

Vore även tacksam om någon kunde tala om hur man skriver då man vill uppdatera med rs-objektets metod update?

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

## #2 — cf, 2000-07-25T19:40Z

Kolla i databasen vad du har för datatyp på ID och NAMN. Skulle tro att felet ligger på ID som du behandlar som en textsträng i SQL-frågan, men som säkert är integer el. likn. i databasen.

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

## #3 — Percy, 2000-07-25T20:03Z

Jag har en sida som infogar länkar i databasen och där fungerar det ok! Jag har id som räknare och namn som text i databasen.

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

## #4 — cf, 2000-07-25T20:05Z

Prova att skriva WHERE id LIKE 
istället för WHERE id =

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

## #5 — emission, 2000-07-25T20:08Z

Jo, men som cf säger, du måste ha rätt datatyp på ID, och dessutom var din SQL-sträng lite tillknasad. Det ska alltså vara:

```
SQLStmt = "UPDATE links SET namn = "'" & Request.Form("namn") & "' WHERE id = " & Request.Form("id")
```

Dessutom räcler det att bara köra Connection.Execute(SQLStmt) (utan set RS), eftersom du inte får tillbaka något.

Visst kan jag visa hur du använder rs.update, men jag vill inte :) Det är inte en bra teknik.

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

## #6 — Percy, 2000-07-25T20:13Z

Vad gör den till dålig/mindre bra framför den andra?
Enligt en bok jag läst stod det att man bör använda sig av metoden update så fort det fanns en risk att data kunde innehålla citattecken och apostrofer? Hur löser jag detta om jag kör en SQL-fråga?

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

## #7 — emission, 2000-07-25T20:29Z

Vad gör den till dålig/mindre bra framför den andra?

Den är dålig eftersom den kräver att man skapar ett recordset, och det blir extra dåligt då många använder "SELECT \* from tabell" för att skapa detta. Med vanlig INSERT eller UPDATE blir det ju bara:

```

 Hej databasen! 
 
 Uppdatera med det här!
```

Med rs.update blir det 

```

Hej databasen!

Sök upp den post i databasen som.....

Skapa ett recordset som tar onödigt med minne, och håller i kopplingen till databasen onödigt länge, och lägg sökresultatet där

Sätt dit det nya värdet

Uppdatera databasen
```

Hur löser jag detta om jag kör en SQL-fråga?

Genom att byta ut alla apostrofer till två apostrofer

replace(sträng,"'","''")

\[Redigerat av emission den 25 jul 2000\]

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/6123-vad-skall-det-stå-för-att-fungera
