20. maj 2003 - 12:38Der er
13 kommentarer og 1 løsning
'Dynamiske variabler'
Jeg er ikke nogen haj og har derfor brug for hjælp.
Jeg vil, i en funktion, gerne bruge variabeldata som del af variabelnavn. Dette, da jeg gerne vil spare noget kode. Først slår jeg op i 'users' for at finde brugere - og herefter vil jeg gerne løbe funktionen igennem for alle brugere.
Har en forestilling om, at det skal være noget a la nedenstående, men andre forslag/workarounds er også velkomne.
----------- strSQL0 = "Select medlem from users where medlem <> 'SYS'order by medlem" Set rs0 = Conn.Execute(strSQL0)
Do Until rs0.EOF
strSQL = "Select * from kuponer where medlem = '" & medlem & "' and status = 'S' order by kupon_id asc" Set rs = Conn.Execute(strSQL)
Jeg vil gerne gennemløbe koden for x antal brugere. Hvis jeg senere laver en Response.Write temp_cnt -så bliver det jo for den sidste bruger jeg har kørt gennem kværnen. Håber, at det er mere forståeligt.
Så vidt jeg husker, lavede jeg nogle eksperimenter for noget tid siden, hvor det vist nok lykkedes mig at lave dynamiske variabler vha. Execute-funktionen.
Der er li'som ingen grund til at lave dynamiske variabler når man har Scripting.Dictionary
Ja, temp_cnt gælder for den sidste bruger. Du kan skrive den ud med det samme, eller lave en sum i en ny variabel, eller gemme værdierne i et array eller lignende. Hvad er det præcist du vil?
Jeg vil bare gerne udskrive værdierne. Men eftersom jeg har mange forskellige queries mv. i samme ASP, vil jeg ikke udskrive værdien med det samme - men i stedet først 1) indhente og beregne alle data og 2) præsentere.
Det er en god opdeling. Det er bare træls at ASP/VB-sproget er til så lidt hjælp. Scripting.Dictionary er nok bedste bud. Du skal så kun gemme de ting du vil udskrive, og blot bruge "almindelige" variabler mens du regner.
En anden måde er at lave et array med præcis plads til det antal medlemmer, der kommer fra første forespørgsel (..noget med redim...), og så putte de fire værdier du har ind i et simpel streng, du kan tage dem ud af igen: "1|2|3|4" - det er vel bare tal. Det er lidt "hacket" ...
Det er ikke nødvendigt at "redimme" et array for at putte det i et recordset, brug:
array = rs.GetRows()
Så har du et array med indholdet fra recordsettet, og du kan trygt lukke dit recordset.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.