webForumDet fria alternativet

Mindre krävande distinctfråga

6 svar · 431 visningar · startad av kolas

kolasMedlem sedan mars 2001142 inlägg
#1

Jag ställer denna fråga mot en Accessdatabas där jag vill summera ihop värden som loopas.

Men det verkar vara för mycket för Access att räkna ihop för det blir "System resource exceeded." ibland och då stannar den på raden Set Count_modelinloop...

Hur bör jag istället skriva den frågan för att Access ska orka med det?

Do While Not rs_c_model.EOF 

		Dim Count_modelinloop
		Set Count_modelinloop = Conn_db.Execute("SELECT COUNT(Id) As Antal FROM  c_tbl where txt1 ="""&rs_c_model("txt1")&""" AND txt2 ="""&Request.Querystring("market")&"""  ")

		response.Write "<li>"&rs_c_model("txt1")&" ("&Count_modelinloop("Antal")&")</li>"& vbCrLf

rs_c_model.MoveNext
Loop
johaseoMedlem sedan maj 2009250 inlägg
#2

Jag skulle importera databasen i MS SQL desktop edition och använda store procedures ... hur stor loop är det det rör sig om i ovan exemplet ? hur många ggr loopar den? 200 ggr 1200 ggr eller 20000 ggr?

kolasMedlem sedan mars 2001142 inlägg
#3

Det rör som om upp till 400ggr i de värsta fallen skulle jag tro.

Trodde inte att det gick att köra lagrade procedurer med Access?

johaseoMedlem sedan maj 2009250 inlägg
#4

Nej inte i Access .... men väl i ersättaren MS SQL Desktop edition .... tanka ner den den är gratis och prova ... det finns en wizard som importerar tabellerna åt dig på ett enkelt sätt

BrimbaMedlem sedan dec. 19995 875 inlägg
#5

Det går utmärkt att köra lagrade procedurer i access.
http://www.google.se/search?hl=sv&q=stored+procedure+access

Jag skulle försöka skriva om frågan så du räknar antalet direkt i databasen, för alla poster. Istället för att loopa. 400 databasanrop på en sida är extremt mycket.

Prova något i stil med.

select count(*), txt1 from c_tbl group by txt1 where txt2 = " & Request.Querystring("market") & ""
johaseoMedlem sedan maj 2009250 inlägg
#6

Hoppsan ... där gick man bet .... sedan när fick en databas som Access stored procedures? ..... jag har läst att den långsiktigt skall ersättas av MS SQL Desktop edition ... är det också fel?

Peter SMedlem sedan dec. 20025 483 inlägg
#7

När du får syntaxfel i Brimbas förslag beror det på att GROUP BY-delen hamnat före WHERE-delen ;)

En annan sak gällande koden i det första inlägget är att recordsetet aldrig stängs inne i loopen. Det skulle kunna vara anledningen till att du får resource exceeded. Men i stället för att rätta till det bör du köra på Brimbas förslag.

130 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)