---
title: "Update och klåpare"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/132852-update-och-klåpare"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Nova"
published: "2005-08-16T19:41:30.000Z"
updated: "2005-08-17T09:42:35.000Z"
replies: 14
views: 513
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/132852-update-och-klåpare"
---

# Update och klåpare

## #1 — Nova, 2005-08-16T19:41Z

Hur får man en update att fungera om man är en klåpare som jag på asp. jag har  klippt och klistrat i hop detta men jag får det inte att fungera. 

```
<%  
Set Recset = Server.CreateObject("ADODB.Recordset")
Connection = MM_jaktdagbok_STRING
Uppdatera = "SELECT * FROM anvandare WHERE ID = " & Request.Form("anv_nr") & " "

RecSet.Open Uppdatera, Connection, adOpenStatic, adLockOptimistic 
RecSet("anv_namn") = Request.Form("namn")
RecSet("anv_enamn") = Request.Form("e_namn")
RecSet("anv_fodd") = Request.Form("fodd")
RecSet("anv_ort") = Request.Form("ort")
RecSet("anvmail_osyn") = Request.Form("mailadress")
RecSet("anv_alias") = Request.Form("alias")
RecSet("anv_losen") = Request.Form("losen")
RecSet("anv_beskrivning") = Request.Form("beskrivning")
RecSet.Update
RecSet.Close
Conn.Close
Response.Redirect  "testinloggad.asp"
 %>
```

Detta felmedelande får jag nu 

```
Error Type:
ADODB.Recordset (0x800A0BB9)
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.
/jaktdagbok/wwwroot/testupp_datera.asp, line 9
```

Och detta är rad 9 

```
RecSet.Open Uppdatera, Connect, adOpenStatic, adLockOptimistic
```

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

## #2 — Peter S, 2005-08-16T20:14Z

Använd UPDATE istället:

```
str = "update anvandare set" & _
    " anv_namn = " & request.form("namn") & "," & _
    " anv_enamn = " & request.form("e_namn") & "," & _
    " anv_fodd = " & request.form("fodd") & "," & _
    " anv_ort = " & request.form("ort") & "," & _
    " anvmail_osyn = " & request.form("mailadress") & "," & _
    " anv_alias = " & request.form("alias") & "," & _
    " anv_losen	= " & request.form("losen") & "," & _
    " anv_beskrivning = " & request.form("beskrivning") & _
    " where id = " clng(request.form("anv_nr"))

set conn = server.createobject("adodb.connection")
conn.open MM_jaktdagbok_STRING
conn.execute str, ,128
conn.close
set conn = nothing
```

Sedan kan det givetvis vara bra att skydda sig mot SQL-injections. Sök i detta forum och du skall finna!

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

## #3 — @nders, 2005-08-17T03:09Z

Jag håller med Peter S om att det är bättre att använda en UPDATE-fråga istället. Men, man måste då se till att ha apostrofer runt textvärden också. Jag gissar lite vad det är för datatyper på fälten, men något sånt här kan det se ut:

```
str = "update anvandare set" & _
    " anv_namn = '" & request.form("namn") & "'," & _
    " anv_enamn = '" & request.form("e_namn") & "'," & _
    " anv_fodd = " & request.form("fodd") & "," & _
    " anv_ort = '" & request.form("ort") & "'," & _
    " anvmail_osyn = '" & request.form("mailadress") & "'," & _
    " anv_alias = '" & request.form("alias") & "'," & _
    " anv_losen = '" & request.form("losen") & "'," & _
    " anv_beskrivning = '" & request.form("beskrivning") & "'" & _
    " where id = " clng(request.form("anv_nr"))
```

Om fältet *fodd* är av datumtyp skall det vara brädgårdar runt värdet.

\- - - - - -

Anledningen till att du fick ett felmeddelande på din första kod är sannolikt att de konstanter du använder (adOpenStatic, adLockOptimistic) inte är definierade på sidan. Ett sätt att göra detta är att inkludera filen adovbs.inc på sidan:

```
<!-- #include virtual="adovbs.inc" -->
```

Mvh

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

## #4 — Nova, 2005-08-17T05:38Z

Det protesterade först mot 

```
" where id = " clng(request.form("anv_nr"))
```

 så jag böt det mot 

```
  " WHERE ID = " & Request.Form("anv_nr") & " "
```

 
nu får jag ett annat felmedelande nu 

```
str = "update anvandare set" & _
    " anv_namn = '" & request.form("namn") & "'," & _
    " anv_enamn = '" & request.form("e_namn") & "'," & _
    " anv_fodd = " & request.form("fodd") & "," & _
    " anv_ort = '" & request.form("ort") & "'," & _
    " anvmail_osyn = '" & request.form("mailadress") & "'," & _
    " anv_alias = '" & request.form("alias") & "'," & _
    " anv_losen = '" & request.form("losen") & "'," & _
    " anv_beskrivning = '" & request.form("beskrivning") & "'" & _
    " WHERE ID = " & Request.Form("anv_nr") & " "
	set conn = Server.CreateObject("ADODB.Connection")
conn.Open MM_jaktdagbok_STRING
conn.execute str, 128
conn.close
set conn = nothing%>
```

detta felmedelande blir det

```
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
/jaktdagbok/wwwroot/sida_som_uppdaterar.asp, line 19

Browser Type:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; .NET CLR 1.1.4322; .NET CLR 1.0.3705) 

Page:
POST 152 bytes to /jaktdagbok/wwwroot/sida_som_uppdaterar.asp

POST Data:
anv_nr=2&namn=Jonas&e_namn=N%E4slund&fodd=1971&ort=Lule%E5&mailadress=jonas@jaktdagbok.se&alias=Jonte&losen=jonas&beskrivning=jag+%E4r+lat&Submit=Submit
```

Rad nr 19

```
conn.Open MM_jaktdagbok_STRING
```

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

## #5 — @nders, 2005-08-17T05:46Z

Har du gett MM_jaktdagbok_STRING något värde?

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

## #6 — Nova, 2005-08-17T05:58Z

Ops jag hade inte med #include file="../Connections/jaktdagbok.asp

Men nu protesterar det mot 

```
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in UPDATE statement.
/jaktdagbok/wwwroot/sida_som_uppdaterar.asp, line 21
```

Rad 21 är 

```
conn.execute str, 128
```

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

## #7 — @nders, 2005-08-17T06:01Z

Skriv ut variabeln *str* med Response.write, så får vi se hur den färdiga SQL-frågan ser ut.

Mvh

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

## #8 — Nova, 2005-08-17T06:17Z

```
update anvandare set anv_namn = 'Jonas', anv_enamn = 'Näslund', anv_fodd = 1971, anv_ort = 'Luleå', 
anvmail_osyn = 'jonas@jaktdagbok.se', anv_alias = 'Jonte', 
anv_losen = 'jonas', anv_beskrivning = 'jag är lat' WHERE ID = 2
```

Jag har radbrutit koden lite.

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

## #9 — @nders, 2005-08-17T06:39Z

Jag ser inte direkt något fel i just UPDATE-frågan, men däremot är execute-raden något felaktig, du saknar ett kommatecken.

```
conn.execute str,[b] ,[/b] 128
```

mvh

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

## #10 — Erik Juhlin, 2005-08-17T06:51Z

Hej SQL-injection!

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

## #11 — Nova, 2005-08-17T08:58Z

När jag försöker öppna sidan som uppdaterar Med 

```
conn.execute str, , 128
```

 Blir felmedelandet

```
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in UPDATE statement.
/jaktdagbok/wwwroot/sida_som_uppdaterar.asp, line 21
```

När jag skickar värden från en annan sida, till sidan som uppdaterar så får jag detta 

```
Error Type:
Microsoft JET Database Engine (0x80040E10)
No value given for one or more required parameters.
/jaktdagbok/wwwroot/sida_som_uppdaterar.asp, line 21
```

Ja Erik jag tror mig veta att det behöver ordnas. Men eftersom jag är en "klåpare" på Asp så försöker jag lösa en sak åt gången :)

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

## #12 — Jesper T, 2005-08-17T09:26Z

Det är för att du antagligen försöker lägga in ett nullvärde eller liknande.
I sådana här fall är det alltid bra att skriva ut sql-satsen för att se vad som spökar.

```
str = "bla bla bla"
With Response
    .Write str
    .end
End With
conn.execute str, , 128
```

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

## #13 — Nova, 2005-08-17T09:34Z

```
update anvandare set anv_namn = '', anv_enamn = '', anv_fodd = , anv_ort = '', 
anvmail_osyn = '', anv_alias = '', anv_losen = '', anv_beskrivning = '' WHERE ID =
```

Detta blir det med Jesper.T, det säger inte mig något men kanske någon annan. Jag har radbrutit koden.

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

## #14 — Nova, 2005-08-17T09:40Z

Hittade felet det var som jag trodde att jag är en nybörjare,

```
" WHERE ID = " & Request.Form("anv_nr") & " "
```

 ska ju självklart eller? vara 

```
" WHERE anv_nr = " & Request.Form("anv_nr") & " "
```

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

## #15 — Jesper T, 2005-08-17T09:42Z

Du kan ta bort : & " "
i slutet, onödigt att lägga in luft... ;)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/132852-update-och-klåpare
