---
title: "update och problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/125240-update-och-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Nova"
published: "2005-03-28T06:54:44.000Z"
updated: "2005-03-28T13:51:11.000Z"
replies: 9
views: 339
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/125240-update-och-problem"
---

# update och problem

## #1 — Nova, 2005-03-28T06:54Z

En kock ska laga mat och inte göra hemsidor. Efter många om och men så fick jag detta till att fungera, hur säkert och bra det är har jag ingen aning om.

```
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = XXXXXXXXXX
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE id = Receptnr"
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
```

Som vanligt kommer en följdfråga då. Jag vill bara uppdatera ett specifikt recept och denna kod uppdaterar alla recept med +1.

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

## #2 — OveRRidE, 2005-03-28T10:03Z

Jag vet inte hur din databasstruktur ser ut, men om den där koden uppdaterar alla poster i tabellen så har du två kolumner ('id' och 'Receptnr') som på alla rader innehåller identiska värden mot varandra, vilket jag för det första inte alls förstår. Antagligen identifierar du recepten med 'id', så varför ha en kolumn till med samma värde? Det din SQL gör nu är alltså att uppdatera alla rader där 'id's värde är samma som 'Receptnr's värde, vilket antagligen är på alla rader eftersom alla uppenbarligen påverkas av frågan. 

Om du vill uppdatera ett recept givet ett id-nummer skall din SQL se ut såhär; 

```
UPDATE recept SET visat = visat + 1 WHERE id = " & Cint(iReceptId)
```

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

## #3 — Nova, 2005-03-28T10:36Z

Om jag skriver in som du visade så får jag felmedelande 

```
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/lyckasmeddb/wwwroot/receptbak.asp, line 60
```

```
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_news_STRING
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE id = " & Cint(iReceptnr)
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()    [B]Detta är rad 60[/B]
```

Det unika nr jag har för varje recept är "receptnr"

och skriver jag in 

```
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_news_STRING
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE Receptnr = " & Cint(Receptnr)
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
```

Så updaterar det inget alls men jag får inga felmedelanden.

Som sagt tidigare man ska koka mat som kock inte koka i hop kod :)

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

## #4 — LarsG, 2005-03-28T11:22Z

```
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE Receptnr = " & Cint(Receptnr)
response.write "SQL:" & Command1.CommandText
response.end
```

Kontrollera att det värde som anges i where-villkoret verkligen finns i din tabell.

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

## #5 — WebbisNet, 2005-03-28T11:24Z

Hur tar du emot receptnumret, ser ingen variabel
vad händer om du skriver ut satsen, får du nåt värde

```
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_news_STRING
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE Receptnr = " & Cint(Receptnr)
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Response.Write Command1
Response.End
'Command1.Execute()
```

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

## #6 — Nova, 2005-03-28T11:46Z

Detta får jag om jag skriver in det LarsG skriver

```
SQL:UPDATE recept SET visat = visat +1 WHERE Receptnr = 0
```

det verkar som att jag försöker uppdatera receptnr "0" med den kod jag har, men det är inte riktigt det jag vill utan jag vill uppdatera det unika receptnr som besökaren tittar på.

Och denna felkod får jag när jag föresöker med vad WebbisNet skriver

```
Error Type:
Response object, ASP 0185 (0x8002000E)
A default property was not found for the object.
```

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

## #7 — LarsG, 2005-03-28T11:51Z

Då är ju problemet hur Receptnr får något värde. Hämtar du det från ett formulär eller vad? Beskriv hur det går till.

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

## #8 — Nova, 2005-03-28T12:02Z

Varje gång en besökare trycker på en länk till ett recept så skickas receptnr med och jag använder receptnr som "trigger" heter det så? för att skriva ut texten och innehåll till det unika receptet med ett recordset. 

Min förhoppning var att jag skulle kunna använda mig av "receptnr" som skickas med när någon trycker på länken, till att uppdatera kolumnen "visat" i tabellen Recept, med +1 varje gång något tittat på just det receptet.

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

## #9 — LarsG, 2005-03-28T13:02Z

```
if  isNumeric(request.querystring("receptnr")) then
    receptNr = request.querystring("receptnr")
else
    response.write "Felaktigt receptnummer" 
    response.direct "lämplig sida"
end 
'...
Command1.CommandText = "UPDATE recept SET visat = visat+1 WHERE Receptnr = "  & receptNr
```

Du får väl snygga till felhanteringen något.

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

## #10 — Nova, 2005-03-28T13:51Z

Jag tackar och bockar så MYCKET :) LarsG
Så här vart koden:

```
iF  isNumeric(request.querystring("receptnr")) then
    receptNr = request.querystring("receptnr")
else
    response.write "Felaktigt receptnummer" 
    response.direct "lämplig sida"   (ska fundera på vilken om den alls behövs)
end IF
set Command1 = Server.CreateObject("ADODB.Command")
Command1.ActiveConnection = MM_news_STRING
Command1.CommandText = "UPDATE recept SET visat = visat +1 WHERE Receptnr = " & CLng(Receptnr)
Command1.CommandType = 1
Command1.CommandTimeout = 0
Command1.Prepared = true
Command1.Execute()
%>
```

Om du någonsin behöver hjälp med mat och dryck så är det bara att hojta till :)

//Peder

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/125240-update-och-problem
