---
title: "Parameter Problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/82555-parameter-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SteveP"
published: "2003-07-23T13:40:32.000Z"
updated: "2003-07-23T15:40:01.000Z"
replies: 14
views: 297
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/82555-parameter-problem"
---

# Parameter Problem

## #1 — SteveP, 2003-07-23T13:40Z

expects parameter '@Serial', which was not supplied. 
Vilket jag kan förstå eftersom jag inte skickar med den i min "strSQL". Men i min SP så sätts @Serial såhär

```
SELECT @Serial = coalesce(max(Serial),0) + 1
```

Så spelar det nån roll vilket värde jag skickar med @Serial som ?
Eller kommer det värdet skrivas över genom SP'n som plockar ut det högsta värdet och plussar på "1" ?

Så det jag undrar är vilket värde jag ska ha på @Serial när jag skickar med det till SP'n

```
Dim ObjRs
	Dim ObjConn
	Dim strSQL
	
	Set ObjConn = Server.CreateObject("ADODB.Connection")
	Set ObjRs = Server.CreateObject("ADODB.RecordSet")
	ObjConn.Open Connect_String()
	
	strSQL = "SpPostListData_Insert " _
				& VarContactID
				
	ObjConn.Execute strSQL, , 128
	
	ObjRs.Close
	ObjConn.Close
	Set ObjRs = Nothing
	Set ObjConn = Nothing
```

```
CREATE PROCEDURE spPostListData_Insert
	
	@ContactID		INT,
	@Serial			INT
	
AS

BEGIN
BEGIN TRANSACTION

SELECT @Serial = coalesce(max(Serial),0) + 1

FROM tblPostList

WITH (holdlock)
WHERE ContactID = @ContactID

INSERT INTO tblPostList
	(
	ContactID,
	Serial
	)

VALUES 
	(
	@ContactID,
	@Serial
	)

COMMIT
END
GO
```

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

## #2 — @nders, 2003-07-23T13:44Z

Jag förstår inte varför du har den med som parameter om du inte ska skicka in någonting i den? Så här hade jag gjort:

```
CREATE PROCEDURE spPostListData_Insert
	
	@ContactID		INT
AS

DECLARE
	@Serial			INT
-- ....................
```

Mvh

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

## #3 — SteveP, 2003-07-23T13:47Z

Det va ju lite mer logiskt.
Tack

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

## #4 — tonyh, 2003-07-23T13:52Z

Men om...

...du av någon orsak vill ha valmöjligheten att skicka med en parameter till din procedur så kan du ju sätta ett defautvärde på @serial variabeln...

Men om jag förstått det korrekt så vill du manipulera variabeln du får in

```
SELECT @Serial = coalesce(max(Serial),0) + 1
-- Kanske borde skrivas
SELECT @Serial = coalesce(max(@Serial),0) + 1
```

Vad är det du försöker göra...

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

## #5 — SteveP, 2003-07-23T14:12Z

Nej det borde väl inte skrivas 

```
SELECT @Serial = coalesce(max(@Serial),0) + 1
```

Eftersom (max(**Serial**)
är kollumnen man plockar.

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

## #6 — SteveP, 2003-07-23T14:35Z

Som @nders visade var correct.

Det jag ville göra var att plockat ut det högsta värdet i "Serial" kolumnen och plussa på 1

Tack ändå tonyh

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

## #7 — SteveP, 2003-07-23T14:37Z

Kan jag på nåt enkelt sett skickade användaren till den nya posten som precis lagts in ?

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

## #8 — @nders, 2003-07-23T15:07Z

Är det alltså @Serial som vi behöver veta då?

I så fall är det bara att avsluta proceduren med 

```
SELECT @Serial
```

Se dock till att du också har **SET NOCOUNT ON** överst i proceduren, annars kan du få lite majs med recordsetet.

Då får du alltså inte exekvera med **adExecuteNoRecords**, utan gör på vanligt vis när du ställer en select-fråga.

Mvh

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

## #9 — SteveP, 2003-07-23T15:14Z

Nej det är just det som är problemet.
Man navigerar sig igenom respektive Post genom paging. En i taget. IntPage hämtas genom Request.Querystring("Page")

Vissa personer har över 5000 poster. Problemet är då när dom kanske har bläddrat så dom är på post nummer 5 och sen trycker "New", då görs själva inserten men dom står fortfarande kvar på Page=5
Men den nya posten ligger kanske runt Page=5001
Då blir det ju lite jobbigt att klicka sig igenom alla 5000 records innan man kommer till det nya man skapat.

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

## #10 — @nders, 2003-07-23T15:19Z

Jag vet inte om jag förstår problemet. Om du avslutar din procedur genom att selecta @Serial, så får du ju ut en ensam post i ditt recordset. Sedan är det bara att använda det värdet i din asp-kod.

Om jag missuppfattar, förklara gärna mer ingående vad du menar.

Mvh

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

## #11 — SteveP, 2003-07-23T15:21Z

Ja då får jag ut en ensam post i recordsettet. Men då slutar ju pagingen att fungera? Eftersom bara 1 recordset har lästs in.

Man pagar genom ett Recordset i taget med en "pil" åt respektive håll.

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

## #12 — @nders, 2003-07-23T15:22Z

Sätt active page eller vad det nu heter till värdet du hämtar från recordsetet?

Jag kan tyvärr nada om paging, men jag hoppas du förstår vad jag menar...

Mvh

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

## #13 — SteveP, 2003-07-23T15:24Z

Du menar AbsolutePage ?
Får ta mig en titt på det.

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

## #14 — @nders, 2003-07-23T15:25Z

Jepp, apselutpage är det apselut jag menar.

Mvh

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

## #15 — SteveP, 2003-07-23T15:40Z

Kanon @nders!
La bara till en liten snutt i Pagingscriptet.

```
if Request.Form("NewMain") <> "" then 
Response.Redirect("PostListData.asp?ID=" & VarContactID & "&Page=" & IntTotalPages )
end if
```

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/82555-parameter-problem
