Tja! Jag sokte lite angaende att slumpa fram recordset, och jag fann aktskilliga medoder det skulle kunna goras pa. Jag tyckte att alla losningarna var krangliga (inte for att de var det, utan for att jag inte kan lika mycket asp som de som har skrivit skripten) sa jag tankte pa en egen variant man skulle kunna losa problemet pa. Jag kollar hur manga poster som finns, och flyttar sedan RS2 till slumpvis position genom en For/Next. Nu tankte jag kolla med experterna har huvuvida detta skripit ar effektivt, blir det for segt eller bor jag skriva om det pa nagot satt? Vad tycker ni?
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (\*.mdb)};dbq=C:\\Inetpub\\wwwroot\\asp\\ordprogram\\data.mdb"
SQLStmt = "SELECT Count(Ord) AS countord FROM Engelska"
SQLStmt2 = "SELECT Ord, Betydelse FROM Engelska"
Set RS = Connection.Execute(SQLStmt)
Set RS2 = Connection.Execute(SQLStmt2)
tal = RS("countord") - 1
Randomize
slump = cInt(rnd()*tal)
<%
Option Explicit
Response.Buffer = True
Dim objWords, Connection, RS
Dim varWords
Dim SQLStmt
Set objWords = New clsArray
SQLStmt = "SELECT Ord, Betydelse FROM Engelska"
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=C:\Inetpub\wwwroot\asp\ordprogram\data.mdb"
Set RS = Connection.Execute(SQLStmt)
If Not RS.EOF Then
objWords.ArrayType = 2
objWords.Positions = 1 '## -- 2 st: Ord, Betydelse --
objWords.SetArray RS.GetRows()
varWords = objWords.Random(1)
End If
Set RS = Nothing
Connection.Close
Set Connection = Nothing
If IsArray(varWords) Then
Response.Write "ORD: " & varWords(0,0) & " BETYDELSE: " & varWords(1,0)
End If
%>
<!--#INCLUDE VIRTUAL="/classes/clsArray.asp"-->
cya,
PatrikB
------------------
-=* IF there is a wrong way to do something, then someone will do it *=-
[Redigerat av PatrikB den 05 jan 2002]
263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e