Unikt fält på client side.

ASP

6 svar · 193 visningar · startad av Vide

Medlem sedan dec. 19998 577 inlägg
Trådstart#1

Hejsan, finns det någon som har lyckats skapa ett fält som stegar (en counter) i ett recordset?
Jag har kollat på diverse fälttyper coh fältattribut, men inte riktigt kommit fram till något, kanske det inte går att skapa ett sådant fält när man inte har tillgång till någon provider eller databas.

Mvh, Vide

Medlem sedan mars 20002 836 inlägg
#2

Hello Vide,

Hittade själv inget sådant som automatiskt räknade upp en counter.

Jag löste det så här (obs! förutsättningarna är din artikel på www.webeye.nu):

<html>
<head>
<title>Recordset utan databas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Const adUseClient = 3
Const adInteger = 3
Const adVarChar = 200

Set objRS = Server.CreateObject("ADODB.Recordset")
	With objRS
		.CursorLocation = 3 '## -- adUseClient --
		.CursorType = 3
		.LockType = 3	
		.Fields.Append "id", adInteger
		.Fields.Append "name", adVarChar, 50
		.Fields.Append "group", adInteger
		.Open
	End With
	
	AddPerson "PatrikB", 1
	AddPerson "jorgen", 1
	AddPerson "Vide", 2
	
	'## -- move to first record in recordset --
	objRS.MoveFirst
	
	Do Until objRS.EOF
		Response.Write "ID: " & objRS(0) & "<BR>" & _
			"Name: " & objRS(1) & "<BR>" & _
			"Group: " & objRS(2) & "<BR><BR>"
		
		objRS.MoveNext
	Loop
Set objRS = Nothing
%>
</body>
</html>
<%
'## -- update recordset counter --
Function GetCounter(ByVal Recordset)
	Dim intTempCounter
	
	'## -- sort the recordset by counter field ascending --
	Recordset.Sort = "id ASC"
	
	'## -- check if recordset contain any records --
	If Not Recordset.EOF Then
		'## -- records found. move to last record to get last counter --
		Recordset.MoveLast
	
		'## -- count up the recordsetcounter by one --
		intTempCounter = Recordset(0) + 1
	Else
		intTempCounter = 1
	End If
	
	'## -- return new counter value --
	GetCounter = intTempCounter
End Function

'## -- add new posts/records to recordset --
Sub AddPerson(ByVal Name, ByVal GroupID)
	Dim intCounter
	
	'## -- get new counter value for unique id --
	intCounter = GetCounter(objRS)
	
	'## -- check if recordset contain any records --
	If Not objRS.EOF Then
		'## -- records found. move to last recordset before adding new records --
		objRS.MoveLast
	End If

	'## -- start of adding new records to recordset --
	objRS.AddNew
		objRS(0) = intCounter
		objRS(1) = Name
		objRS(2) = GroupID
	objRS.Update '## -- update recordset with new records --
End Sub
%>

Byggde mig en funktion som kollade högsta id och sedan returnerade högsta id + 1.

Återkom om du hittar ett värde man kan sätta för att öka countern automatiskt ... blir ju trots allt smidigare i längden *ler*

cya,
PatrikB

Medlem sedan dec. 19998 577 inlägg
#3

Jo, sådär löste jag det också, men det känns som sagt lite osmidigt. :)

Medlem sedan dec. 19998 577 inlägg
#4

Jag kan ju meddela att jag inte hittat något sätt under ASP. Men i ASP.NET gick det som en dans... :D

ASP.NET rox

Medlem sedan dec. 19996 522 inlägg
#5

För mig som är förvirrad som vanligt, vad använder man ett sådant script för typ ? som patrikb postade

Medlem sedan dec. 19998 577 inlägg
#6

Jag brukar lagra data i dom. ;)

Alvarligt talat så används det till mycket, det senaste jag använt det till är en helt ny undersökningstyp där jag lagrar frågor, typ som en konfigurationsfil. Det fungerar precis som en databas, men är enklare att porta ut till andra applikationer, och det är lättare att se hur det är konfigurerat.

Hur man gör har jag skrivit i min senaste artikel: http://www.webeye.nu/default2.asp?que=asp/default.asp&exec=asp/artiklar/asp_16.asp

Dock hittade jag inget bra exempel man kunde använda på ett simpelt sätt.

Mvh, Vide

Medlem sedan mars 20002 836 inlägg
#7

Vide

din mailadress som går från din sida funkar ej.

Fick tillbaka mailet med user unknown. Verkar som om den är relayad till en telia adress ... kanske bara de som har strul.

247 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)