---
title: "Optimering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/165969-optimering"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "devotion"
published: "2007-10-30T11:42:33.000Z"
updated: "2007-10-30T12:09:40.000Z"
replies: 5
views: 390
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/165969-optimering"
---

# Optimering

## #1 — devotion, 2007-10-30T11:42Z

ej!

Jag har följande kod

```
	while not Rs.EOF
			
			'Hämta värdena från databasen
			lTimeId=Rs("Id")
			sTimeSign=Rs("Sign")
			sTimeTypeArt=Rs("TimeTypeArt")
			sTimeTypeTyp=Rs("TimeTypeTyp")
			sTimeTypeName=Rs("TimeTypeName")
			sTimeSpec=Rs("Spec")
			dTimeDate=FormatDateTime(Rs("StartDate"),2)
			nTimeTime=ConvertValue(Rs("Time"))
			cPrice=Rs("Price")
			fPercentValue=ConvertValue(Rs("DiscountPCT"))
			fTimeReportTime=GetTimeDiff(Rs("StartDate"), Rs("StopDate"), Rs("Time"))
			sTaskNr=Rs("TaskNr")
			
			'Skapa sLine
			sLine="TR;" & lTimeId & ";" & sTimeSign & ";" & sTimeTypeArt & ";" & sTimeTypeTyp & ";" & sTimeTypeName & ";" & sTimeSpec & ";" & dTimeDate & ";" & nTimeTime & ";" & cPrice & ";" & fTimeReportTime & ";" & sTaskNr & ";" & fPercentValue & ";"
			
			sFile.writeLine sline
			
			if Rs("Sign1By")="" then
				nTimeCount=nTimeCount+1
				bWriteToTextFile=1	
			end if
			
			'Sätta "Attest 1" på rapporterade tider
			sSQL="UPDATE [tblTime] SET [Sign1By]= 'System', [Sign1Date] = GetDate() WHERE [Id] = " & lTimeId
			executeSQL(sSQL)

		Rs.MoveNext	
	wend
```

Hur kan man optimera?

Nu handlar det inte om hur mycket data som helst, men jag tycker inte om att ha en sql-fråga i en loop..  :)  

Mvh
Henrik

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

## #2 — voigtann1, 2007-10-30T11:53Z

Optimera vet jag inte men du behöver egentligen inte dim:ar upp variabler för alla dina värde ifrån ditt Recordset. Beroende på vilken Databas du använder dig av. Om det är Access så är det egentligen bara "PM" fältet du behöver dimar och spara då den visas endast en gång.

Du skulle kunna gruppera alla dina ID som träffas och endast köra 1 Update i din "Sätta "Attest 1" på rapporterade tider".

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

## #3 — Peter S, 2007-10-30T12:01Z

Hur ser SQL-frågan ut som resulterar i RS?

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

## #4 — devotion, 2007-10-30T12:05Z

```
'SQL-sats för att hämta ut data ur tblTime, tblTimetype, tblUsers, tblTask
	sSQL=	"SELECT [tblTime].[Id], [tblTime].[Spec], [tbltime].[Modified], [tbltime].[startDate] AS StartDate, [tblTime].[StopDate] AS StopDate, [tblTime].[Time], [tblTime].[Price], [tblTime].[DiscountPCT], [tblTime].[Sign1By], " &_
			"[tblTimeType].[Custom1] AS TimeTypeArt, [tblTimeType].[Custom2] AS TimeTypeTyp, [tblTimeType].[Name] AS TimeTypeName, " &_
			"[tblTask].[TaskNr] AS TaskNr, " &_
			"[tblUsers].[Sign], [tblUsers].[Name] " &_
			"FROM [tblTime] " &_
			"INNER JOIN [tblTimeType] " &_
			"ON [tblTime].[TimeTypeId] = [tblTimeType].[Id] " &_
			"INNER JOIN [tblTask] " &_
			"ON tblTime.[TaskId] = [tblTask].[Id] " &_
			"INNER JOIN [tblUsers] " &_
			"ON tbltime.[User] = [tblUsers].[Name] " &_
			"WHERE startDate > '" & dStartDate & "' AND stopDate < '" & dStopDate & "' AND [tblUsers].[Name] = '" & sUser & "'"
```

Hmm, det kanske var en bra idé att göra en sträng av alla id för att sedan göra en Update på slutet! :)  

Mvh
Henrik

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

## #5 — Peter S, 2007-10-30T12:06Z

Precis: ...WHERE id IN (...)

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

## #6 — devotion, 2007-10-30T12:09Z

> **Peter S skrev:**
>
> Precis: ...WHERE id IN (...)

Ok! :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/165969-optimering
