---
title: "Ändra kodstruktur"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/178119-ändra-kodstruktur/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "dareknowak"
published: "2009-04-19T11:33:42.000Z"
updated: "2009-04-21T15:28:15.000Z"
replies: 30
views: 1384
page: 2
pages: 2
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/178119-ändra-kodstruktur"
---

# Ändra kodstruktur

_Sida 2 av 2._

## #21 — dareknowak, 2009-04-21T09:46Z

hahaha va det så enkelt? trodde man va tvungen att ha med dom vid en execute.
tack @nders :)

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

## #22 — voigtann1, 2009-04-21T09:59Z

Det är bara när du retunera något i ASP du behöver det, du kan om du verkligen vill ha kvar () använda Call framför Execute.

```
Call objConn.execute("DELETE FROM tabell WHERE user = '" & strUser "'",,128)
```

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

## #23 — @nders, 2009-04-21T10:00Z

Normalt sett är det så att kör man en sub (en funktion som inte returnerar någonting, utan bara utför något) så ska man inte ha parenteser. Tar man emot ett returvärde från en funktion så skall man ha med paranteserna. Ett undantag är response.write - som du kan använda både med och utan parenteser.

edit: eller använd call som i voigtanns exempel - men det är riktigt skitfult. :)

mvh

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

## #24 — Peter S, 2009-04-21T10:21Z

Red.

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

## #25 — Troxy, 2009-04-21T10:53Z

> **[@nders skrev:](https://www.webforum.nu/p/1465192)**
>
> Ett undantag är response.write - som du kan använda både med och utan parenteser.

Om man ska vara petnoga  :e så kan man anropa alla subs med parenteser **om anropet innehåller 1 argument**.
Då omsluter parenteserna nämligen bara argumentets uttryck, tex. en sträng.
Att omsluta ett uttryck med parenteser påverkar ingenting. Jämför detta:

```
Fruit = "Banana"
Fruit = ("Banana")
Response.Write "Banana"
Response.Write("Banana")
Response.Write("Banana") & ("Apple")
```

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

## #26 — dareknowak, 2009-04-21T11:12Z

När man kan skippa paranteser brukar jag göra det med anledning att det i slutändan blir mindre kod :)

Det var bra att veta det med sub då jag tidigare inte jobbat med det utan alltid jobbat med värden som jag sedan använt för att få till funktionen (heter väl hårdkodning om jag inte har fel?) Kan väl nästan säga att all min kod är hårdkodad då jag inte inte lärt mig så många funktioner, dock är det ju fördel att använda funktioner, både för prestandans och snygghetens skull som jag uppfattat det hittills.

Trodde faktiskt inte ens att man kunde använda paranteser i Response.Write

Tack för alla svar, markerar ledels svar som slutgiltligt då han svarade först på den huvudsakliga frågan som tråden handlar om.

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

## #27 — rhdf, 2009-04-21T12:16Z

skumt, jag har alltid kört
objConn.execute("DELETE FROM tabell WHERE user = '" & strUser "'"),,128 
dvs utan Call och med ",,128" utanför parantesen och aldrig fått felmess på det...

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

## #28 — @nders, 2009-04-21T12:34Z

Enl. Troxys inlägg kan man ha parentes runt ett enskilt argument. Provar du på att omsluta flera argument i samma parentes kommer du stöta på patrull.

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

## #29 — spango, 2009-04-21T12:43Z

> **[rhdf skrev:](https://www.webforum.nu/p/1465218)**
>
> skumt, jag har alltid kört
> objConn.execute("DELETE FROM tabell WHERE user = '" & strUser "'"),,128 
> dvs utan Call och med ",,128" utanför parantesen och aldrig fått felmess på det...

Nej, det är för att paranteserna hamnar runt ett uttryck istället för runt parameterlistan. 

Anropar man en funktion *behöver* man paranteser runt parameterlistan.

Anropar man en sub *får man inte* ha paranteser runt parameterlistan om man inte använder call. 

Ett uttryck får alltid ha en parantes runt sig. I de fall där man anropar en sub som bara har ett argument kan det se ut som att man får ha paranteser runt parameterlistan (utan call), eftersom *uttrycket* som utgör parameterlistan kan omslutas av en parantes (som då blir en del av uttrycket, vilket alltså slutar med att parameterlistan inte har några paranteser runt sig).

Personligen tycker jag att man ska förstå syntaxen för så grundläggande saker som proceduranrop i det språk man kodar. VBscript är förstås lite udda som har en syntaktisk skillnad på hur man anropar procedurer med och utan returvärden, vilket gör att man måste lära sig även vad varje funktion returnerar, men det får man leva med om man sitter och jobbar med ett språk som varit på utgående i dryga sju år :)

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

## #30 — Ledel, 2009-04-21T12:49Z

Varför varför varför får man ha paranteser runt en parameter? Finns det någon användning för det? Jag gick på det där rätt hårt som kan ses i mitt kodexempel, då jag tänkte att ASP liknade något annat normalt språk...

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

## #31 — rhdf, 2009-04-21T15:28Z

> **[spango skrev:](https://www.webforum.nu/p/1465223)**
>
> Personligen tycker jag att man ska förstå syntaxen för så grundläggande saker som proceduranrop i det språk man kodar. VBscript är förstås lite udda som har en syntaktisk skillnad på hur man anropar procedurer med och utan returvärden, vilket gör att man måste lära sig även vad varje funktion returnerar, men det får man leva med om man sitter och jobbar med ett språk som varit på utgående i dryga sju år :)

hehe
saken är nog den att jag aldrig reflekterat över just detta fall, annars så är jag på det klara över när var och hur man skall/kan ha paranteser.

men alla såna här dumheter slipper man ju numera när man kodar .net istället

> **[Ledel skrev:](https://www.webforum.nu/p/1465224)**
>
> Varför varför varför får man ha paranteser runt en parameter? Finns det någon användning för det? Jag gick på det där rätt hårt som kan ses i mitt kodexempel, då jag tänkte att ASP liknade något annat normalt språk...

tekniskt sett så kan du ju ha vad fasen som helst som parameter till en funktion
tex doThings(10\*(3584+354/75)+some_variabel, "en sträng", some_other_stuff)
uträkningen i första parametern kan ju då sättas inom paranteser.. 
det ser helt fel ut men det funkar....

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/178119-ändra-kodstruktur/page2  
Föregående sida: https://www.webforum.nu/amne/asp/178119-ändra-kodstruktur.md
