Avatar billede meyer Nybegynder
11. august 1999 - 14:18 Der er 7 kommentarer og
1 løsning

Select <> Array


Hej der.

Jeg henter min <select> fra databasen og vælger den der er valgt da recorden blev gemt, med denne:

<Select Name="Egne">
<option value="">Vælg her</option>
<%While Not objRec.EOF%>
  <% if objRec("ID") = Cint(ProdID) then %>
<option selected value="<%=objRec("ID")%>"><%=objRec("navn")%>
<% else %>
<option value="<%=objRec("ID")%>"><%=objRec("navn")%>
<% end if%>
  <%objRec.MoveNext
Wend
objRec.close
%>
</Select>

Det kører også helt fint, men jeg bruger den flere gange på hver side, så det tager en frygtelig tid inden den har henter alle gangene.

Kan jeg på nogen måde nøjes med at hente 1 gang evnt. i et array og så tjekke fra det?? (der er ca. 150 records)
Og hvordan gør jeg??

Meyer
Avatar billede mnk Nybegynder
11. august 1999 - 14:33 #1
Hvis du starter med at lave en lave en while løkke som tamper indeholdet ind i en tabel, så kan du bladre den igennem og vælge du nu skal bruge. Hvis du laver en tæller som holder styr på hvor i tabellen den lå, så skulle du på de næste sider kunne refere direkte til denne.

Og selv om du skulle bladre hele tabellen igennem igen så arbejder du i hukommelsen og ikke i databasen, så det burde være meget hurtigere.

Hvis du vil have et "paranoia" chek, så kan du evt. lave count (*) i databasen og sammenligne det med antallet af elementer i din tabel før at du vælger ud fra tabellen - på den måde sikrer du at der ikke tilfældigvis er kommet en ny record i databasen siden du hældte data i tabellen.

Avatar billede meyer Nybegynder
11. august 1999 - 14:45 #2
Kan du ikke vise et eksempel??

Meyer :o)
Avatar billede bocker Nybegynder
13. august 1999 - 00:06 #3
Tjaaa hvad med at lave en funktion, så kan du kalde den igen og igen :-)
Avatar billede newbie Nybegynder
13. august 1999 - 09:10 #4
Den funktion ville jeg også gerne se!!!
Avatar billede jlk Nybegynder
17. august 1999 - 10:56 #5
Prøv den her:

'Put db i array
Sql = "SELECT ID, Kategori FROM Prod ORDER BY Kategori"
Set rs = Conn.execute( Sql )

Dim Array()
i = 1

While Not rs.EOF
Redim Preserve Array(i)
Array(i) = rs("id") & "," & rs("Kategori")
i = i + 1
rs.MoveNext
Wend
'Her tæller vi antal records
Query = "Select count(*) as Antal from Prod"
Set Rs=Conn.Execute(Query)
Antal = Rs.Fields("antal")
%>

'List dropdown
<Select Name="DropDown">
<%
For i = 1 to Antal
id = Instr(array(i),",")
Kategori = Mid(array(i),id+1)
id = Mid(array(i),1,id-1)
%>
<option value="<%=ID%>"><%=Kategori%>
<%Next%>

</Select>

Jeg ved ikke om det er den optimale, men den virker :-)
Avatar billede meyer Nybegynder
17. august 1999 - 11:19 #6
Genialt JLK, svar og du får pointene :o)

Meyer
Avatar billede jlk Nybegynder
17. august 1999 - 11:41 #7
ok
Avatar billede meyer Nybegynder
17. august 1999 - 13:27 #8
Det er dine.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester