---
title: "bara update på valda"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/122895-bara-update-på-valda"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "jns"
published: "2005-02-20T22:43:12.000Z"
updated: "2005-02-23T08:49:53.000Z"
replies: 11
views: 377
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/122895-bara-update-på-valda"
---

# bara update på valda

## #1 — jns, 2005-02-20T22:43Z

Fridens!
Jag har stött på ett problem som jag inte klarar att kliva över.

Jag ska nämligen uppdatera en post i en databas men vill inte ändra på de fält som inte ska ändras, alltså om en input ruta lämnas tom.
Men jag kommer inte på hur jag ska få till den funktionen utan att behöva skriva 49 stycken update strängar.

Så här ser koden ut nu:

```
nID = "'" & replace(request.form("id"),"'","''") & "'"
nSignature = "'" & replace(request.form("signature"),"'","''") & "'"
nPwd = "'" & replace(request.form("pwd"),"'","''") & "'"
nComments = "'" & replace(request.form("comments"),"'","''") & "'"
nDelete = request.form("delete")
nModify = request.form("modify")
nUsers = request.form("users")
nModpassword =request.form("modpassword")

updatera = "UPDATE login SET Signature = " & nSignature & ", pwd = " & nPwd & ", Comments = " & nComments & ", delete = " & nDelete & ", Modify = " & nModify & ", users = " & nUsers & ", modpassword = " & nModpassword & " WHERE ID = " & nID

set mincon =Server.CreateObject("ADODB.Connection")

mincon.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\jeha\ukm\db\main.mdb")

mincon.execute updatera,rowsaffected,128
```

Men självklart så godtar den inte min update-sträng, får detta felmeddelande:

```
Microsoft JET Database Engine (0x80040E14)
Syntax error in UPDATE statement.
```

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

## #2 — Poffe, 2005-02-21T01:01Z

Har du skrivit ut och kontrollerat så SQL-satsen är korrekt?

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

## #3 — Josef, 2005-02-21T01:25Z

Antar att ID är av typen integer i databasen. Då ska det inte vara ' runt värdet.

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

## #4 — jns, 2005-02-21T20:58Z

Tack, så långt fungerar det, men den fungerar fortfarande inte när man inte fyller i alla fält

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

## #5 — LarsG, 2005-02-21T21:09Z

Yikes, inte kan du ha en kolumn som heter delete. Modify är inte så bra heller.

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

## #6 — jns, 2005-02-21T21:37Z

Jasså? Hur många sådanna där farliga namn finns det egentligen?
Alla verkar ju vara "tagna".

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

## #7 — Josef, 2005-02-21T21:54Z

> **jns skrev:**
>
> Jasså? Hur många sådanna där farliga namn finns det egentligen?
> Alla verkar ju vara "tagna".

Här är en lista för MySQL:<http://dev.mysql.com/doc/mysql/en/reserved-words.html>

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

## #8 — Jesper T, 2005-02-21T22:10Z

> **jns skrev:**
>
> Jasså? Hur många sådanna där farliga namn finns det egentligen?
> Alla verkar ju vara "tagna".

Det är kanske lite överdrivet, men en teknik att få detta ideotsäkert är att innan kolumnnamnet sätta tabellens initial med ett underscore.

ex. UPDATE tbl SET t_update=1, t_modify='Hej' WHERE t_id=3

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

## #9 — jns, 2005-02-22T21:07Z

Ah, det var att bra tips. Tack
Fortfarande ingen som har nått svar på min första fråga?

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

## #10 — Jesper T, 2005-02-23T07:19Z

> 49 stycken update strängar

Vad får du 49 ifrån?
Vad är det du vill uppnå, jag fattar i a f inte. :)

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

## #11 — jonnyz, 2005-02-23T08:32Z

Du måste kolla de värden du får och generera frågan utifrån det. Exempelvis 

```

uppdatera = "UPDATE login SET "

If Len(nSignature)>0 Then
   uppdatera=uppdatera & " Signature = " & nSignature & "
End If
If Len(nPwd)>0 Then
   If Len(uppdatera)>18 Then
      uppdatera=uppdatara & ","
   End If
   uppdatera=uppdatera & " pwd = " & nPwd
End If
etc...

uppdatera = uppdatera & " WHERE ID = " & nID
```

Störde mig på stavfelet av "uppdatera" och har korrigerat stavningen.

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

## #12 — J.N., 2005-02-23T08:49Z

Re: bara update på valda

HEJ!

> **jns skrev:**
>
> ...Jag ska nämligen uppdatera en post i en databas men vill inte ändra på de fält som inte ska ändras, alltså om en input ruta lämnas tom...

Varför vill du inte uppdatera värden i samma post som inte ändras?

Visserligen kanske det känns onödigt att uppdatera något som inte ändrats, men tänk på tiden det tar att göra en dynamisk update som jämför gammalt med nytt...
med 49 poster...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/122895-bara-update-på-valda
