---
title: "byta ut post ?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/52132-byta-ut-post"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Pellefant"
published: "2002-09-03T18:19:19.000Z"
updated: "2002-09-10T15:23:36.000Z"
replies: 12
views: 238
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/databaser-sql/52132-byta-ut-post"
---

# byta ut post ?

## #1 — Pellefant, 2002-09-03T18:19Z

SQL = "SELECT \* FROM annonser" 
RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic 
RecSet.AddNew
RecSet("typ") = server.htmlencode(request.form("typ"))

Har denna, och en ny post skapas, men hur gör man om man vill ersätta en befintlig post istället, säg tex där ID är 22 (egentligen Request.QueryString("idnummer")  i ASP)? 

(någon slags "Replace" alltså ?)

Tack på förhand.

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

## #2 — Brimba, 2002-09-03T18:24Z

Prova detta:

```
SQL = "UPDATE annonser SET typ = '" & server.htmlencode(request.form("typ")) & "' WHERE ID = " & Request.QueryString("idnummer")
Databas.execute(SQL)
```

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

## #3 — LarsG, 2002-09-03T18:25Z

Varför gör du htmlencode på det du lägger in i databasen?

```

typ =  "'" & replace(request.form("typ"),"'","''") & "'" 
connect.execute "update annonser set typ = " & typ & _
" where id = " & Request.QueryString("idnummer")
```

Det är dags att lämna recordsetträsket.

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

## #4 — Pellefant, 2002-09-03T18:37Z

Tack så hemskt mycket.

Föjdfråga, om man har flera(i mitt fall ca 10) saker som ska uppdateras, kan man slå ihop det i en SQL sats då, eller blir det 10 st SQL satser?

SQL = "UPDATE annonser SET typ = '" & server.htmlencode(request.form("typ")) & "' WHERE ID = " & Request.QueryString("idnummer")

De tre första:
RecSet("typ") = server.htmlencode(request.form("typ"))
RecSet("titel") = server.htmlencode(request.form("titel"))
RecSet("forfattare") = server.htmlencode(request.form("forfattare"))

Tack på förhand. (igen)

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

## #5 — LarsG, 2002-09-03T19:01Z

Det går att uppdatera flera kolumner samtidigt.

```
typ =  "'" & replace(request.form("typ"),"'","''") & "'" 
titel = "'" & replace(request.form("titel"),"'","''") & "'"
connect.execute "update annonser set typ = " & typ & _
", titel = " & titel & _
" where id = " & Request.QueryString("idnummer")
```

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

## #6 — Pellefant, 2002-09-10T13:02Z

Hej igen!

Får inte ihop det riktigt ändå, vad kan jag tänklas göra för fel?

SQL = "UPDATE annonser SET 

typ =  "'" & replace(request.form("typ"),"'","''") & "'" 
titel = "'" & replace(request.form("titel"),"'","''") & "'"
forfattare = "'" & replace(request.form("forfattare"),"'","''") & "'" 

amne = "'" & replace(request.form("amne"),"'","''") & "'"

email = "'" & replace(request.form("email"),"'","''") & "'"

losenord = "'" & replace(request.form("losenord"),"'","''") & "'"

utgar = "'" & replace(request.form("utgar"),"'","''") & "'"

upplaga = "'" & replace(request.form("upplaga"),"'","''") & "'"

saljespris = "'" & replace(request.form("saljespris"),"'","''") & "'"

kopespris = "'" & replace(request.form("kopespris"),"'","''") & "'"

isbn = "'" & replace(request.form("isbn"),"'","''") & "'"

ovrigt = "'" & replace(request.form("ovrigt"),"'","''") & "'"

connect.execute "update annonser set typ = " & typ & \_
", titel = " & titel & \_
", forfattare = " & forfattare & \_
", amne = " & amne & \_
", email = " & email & \_
", losenord = " & losenord & \_
", utgar = " & utgar & \_
", upplaga = " & upplaga & \_
", saljespris = " & saljespris & \_
", kopespris = " & kopespris & \_
", isbn = " & isbn & \_
", ovrigt = " & ovrigt & \_

" where id = " & Request.QueryString("idnummer") 

RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic 

RecSet.Update

RecSet.Close
Databas.Close
%\>

Felmed:
Microsoft VBScript compilation error '800a0409' 

Unterminated string constant 

/kursbok/addredigera.asp, line 28 

SQL = "UPDATE annonser SET
\------------------------------------^

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

## #7 — LarsG, 2002-09-10T13:32Z

Tag bort denna rad

```
SQL = "UPDATE annonser SET
```

Jag ser att du använder

```
upplaga = "'" & replace(request.form("upplaga"),"'","''") & "'"
```

för alla kolumner. Det skall man bara göra om datatypen är varchar/text. Om det är tal så gör man bara 

```
upplaga = request.form("upplaga")
```

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

## #8 — Pellefant, 2002-09-10T14:04Z

Jag igen...   :r

\<%
Set Databas = Server.CreateObject("ADODB.Connection")
Databas.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=" & Server.MapPath("\\kursbok\\db\\kurslitt.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")

typ =  "'" & replace(request.form("typ"),"'","''") & "'" 
titel = "'" & replace(request.form("titel"),"'","''") & "'"
forfattare = "'" & replace(request.form("forfattare"),"'","''") & "'" 
amne = "'" & replace(request.form("amne"),"'","''") & "'"
email = "'" & replace(request.form("email"),"'","''") & "'"
losenord = "'" & replace(request.form("losenord"),"'","''") & "'"
utgar = "'" & replace(request.form("utgar"),"'","''") & "'"
upplaga = "'" & replace(request.form("upplaga"),"'","''") & "'"
saljespris = "'" & replace(request.form("saljespris"),"'","''") & "'"
kopespris = "'" & replace(request.form("kopespris"),"'","''") & "'"
isbn = "'" & replace(request.form("isbn"),"'","''") & "'"
ovrigt = "'" & replace(request.form("ovrigt"),"'","''") & "'"

connect.execute "update annonser set typ = " & typ & \_
", titel = " & titel & \_
", forfattare = " & forfattare & \_
", amne = " & amne & \_
", email = " & email & \_
", losenord = " & losenord & \_
", utgar = " & utgar & \_
", upplaga = " & upplaga & \_
", saljespris = " & saljespris & \_
", kopespris = " & kopespris & \_
", isbn = " & isbn & \_
", ovrigt = " & ovrigt & \_

" where id = " & Request.QueryString("idnummer") 

RecSet.Open SQL, Databas, adOpenStatic, adLockOptimistic 

RecSet.Update

RecSet.Close
Databas.Close
%\>

Nu får jag felmed: 
Microsoft VBScript runtime error '800a01a8' 

Object required: '' 

/kursbok/addredigera.asp, line 43 
Rad 43 är: connect.execute "update etc...

alla kolumner är av typen text, utom "ovrigt" som är "PM", men jag förmodar att det ska behandlas som text/varchar också.

Ovanstående är "all" kod alltså, som berör databasen. I början av sidan har jag även: 
\<%session.lcid = 1053%\>
\<% Response.Buffer = True %\>
\<!-- #include file="adovbs.inc" --\>

Kollade just att också querystringen "idnummer" finns, och det gjorde den.

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

## #9 — Pellefant, 2002-09-10T14:05Z

P.s Länken är : <http://www.kursbok.tk/>
och det går att logga in på "redigera annons" med test/test

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

## #10 — LarsG, 2002-09-10T14:29Z

Jo PM hanteras som text. Det har blivit lite namnförvirring, connect istället för databas. Jag tog bort all kod med recset eftersom det inte behövs.

```
<% 
Set Databas = Server.CreateObject("ADODB.Connection") 
Databas.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("\kursbok\db\kurslitt.mdb") 

typ = "'" & replace(request.form("typ"),"'","''") & "'" 
titel = "'" & replace(request.form("titel"),"'","''") & "'" 
forfattare = "'" & replace(request.form("forfattare"),"'","''") & "'" 
amne = "'" & replace(request.form("amne"),"'","''") & "'" 
email = "'" & replace(request.form("email"),"'","''") & "'" 
losenord = "'" & replace(request.form("losenord"),"'","''") & "'" 
utgar = "'" & replace(request.form("utgar"),"'","''") & "'" 
upplaga = "'" & replace(request.form("upplaga"),"'","''") & "'" 
saljespris = "'" & replace(request.form("saljespris"),"'","''") & "'" 
kopespris = "'" & replace(request.form("kopespris"),"'","''") & "'" 
isbn = "'" & replace(request.form("isbn"),"'","''") & "'" 
ovrigt = "'" & replace(request.form("ovrigt"),"'","''") & "'" 

databas.execute "update annonser set typ = " & typ & _ 
", titel = " & titel & _ 
", forfattare = " & forfattare & _ 
", amne = " & amne & _ 
", email = " & email & _ 
", losenord = " & losenord & _ 
", utgar = " & utgar & _ 
", upplaga = " & upplaga & _ 
", saljespris = " & saljespris & _ 
", kopespris = " & kopespris & _ 
", isbn = " & isbn & _ 
", ovrigt = " & ovrigt & _ 
" where id = " & Request.QueryString("idnummer") 

Databas.Close 
%>
```

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

## #11 — Pellefant, 2002-09-10T14:31Z

Glöm det om test/test ovan....upptäckte just att det gick att ladda ner hela db:n, vilket lätt göres med hjälp av koden ovan och grundläggande kännedom om Brinkster. Jag blev allt lite chockad när jag märkte hur enkelt det var. :l  Så jag ska lösa det först, så det inte går, sen lösa problemet som beskrivs i denna tråden. Har plockat ner db:n för närvarande.

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

## #12 — Pellefant, 2002-09-10T14:32Z

Aha, tack för koden ovan LarsG, ska testa den senare ikväll, när jag fått ordning på "säkerhetsluckan".

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

## #13 — Pellefant, 2002-09-10T15:23Z

Pust, nu har jag bytt namn på databasen till något som är svårt att lista ut,  typ "g48f34f79.mdb". Håller på att lägga in id, lösenord också på databasen,  Koden ovan fick det att fungera LarsG, ett stort tack. :)

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

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/52132-byta-ut-post
