---
title: "INSERT-strul"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/172423-insert-strul"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Emil RT"
published: "2008-06-27T08:30:42.000Z"
updated: "2008-06-27T09:01:45.000Z"
replies: 8
views: 501
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/172423-insert-strul"
---

# INSERT-strul

## #1 — Emil RT, 2008-06-27T08:30Z

Har följande tabell i access:

ID:Räknare
falt1: text
falt2:text

Samt följande insert i ASP:

```
Insert = "INSERT INTO test (falt1, falt2) VALUES ('?', '?')"
objConn.Execute Insert, array("hej", "da")
```

Saken är den att det är frågetecknena som läggs in i db:n och inte texten.

Har även testat:

```
Insert = "INSERT INTO test (falt1, falt2) VALUES (?, ?)"
objConn.Execute Insert, array("hej", "da")
```

Men får då:

> \[Microsoft\]\[Drivrutin för ODBC Microsoft Access\]Felaktigt COUNT-fält

 

Andledningen till frågetecknen är för att skydda mot SQL injections. Visst är det så man ska göra?

Någon som vet?

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

## #2 — Travoni, 2008-06-27T08:33Z

Ja du måste använda parametrar, sök lite på wf/asp

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

## #3 — Emil RT, 2008-06-27T08:36Z

De mesta trådar på wF om parametriserade frågor handlar om select-satser. Detta är en insert och jag har inte kunnat få fram så mycket om just detta. 

Jag har fattat det som att ovanstående är en parametriserad fråga. Har jag fel?

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

## #4 — Travoni, 2008-06-27T08:39Z

Testa detta:

```
sqlstmt = "INSERT INTO test (falt1, falt2) VALUES (?, ?)"
Set cmd = server.createobject("ADODB.command")
cmd.activeConnection = objConn
cmd.CommandText = SQLStmt
Set temp = cmd.Execute (, array("foo","bar"))
Set cmd = Nothing
```

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

## #5 — Emil RT, 2008-06-27T08:51Z

(edit.)

Success ...!! Många tack!

Fråga:
Jag har:

```
 Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("db.db")'
```

för att öppna databasen. 

Jag klistrade in din kod rätt in i asp filen och det funkade.

Hur kan din kod som har cmd isf objConn osv hitta min databas?

Vad är skillnaden på command och connection?

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

## #6 — Travoni, 2008-06-27T08:59Z

cmd.activeConnection = **objConn**

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

## #7 — Travoni, 2008-06-27T09:00Z

BTW: 
Använd microsoft-Jet-providern i stället.
Mycket bättre.

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

## #8 — Emil RT, 2008-06-27T09:00Z

Sorry .. såg det precis:)

Som sagt, många tack!

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

## #9 — Travoni, 2008-06-27T09:01Z

```
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db.db")
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/172423-insert-strul
