webForumDet fria alternativet

"slumpa om ifall träff"

ASP

3 svar · 330 visningar · startad av reka1

Medlem sedan sep. 2001650 inlägg
Frågan#1

Go'kväll!
Försöker få till att ett unikt nummer ska skapas, men om det numret redan existerar i databasen ska då ett nytt genereras ändå tills ett ledigt nummer slumpas fram.

Som koden är nu så blir det ingen omgenerering.
Kanske ngn som är mer kunnig kan ge mig en knuff.

dim boknr, r

'Skapar bokningsnummer
function kontroll
	'skapar ett bokningsnummer
	randomize
	boknr = Int(Rnd * 19999999)
	r = false

	'hämtar bokningsnummer
	kolla = ("select boknr from losenord")
	set rs = con.execute(kolla)

	do until rs.eof
		'om bokningsnumret redan finns bryts loopen o ändrar r till true
		if rs("boknr") = boknr then
			r = true
			exit do
		end if
	rs.MoveNext
	loop
end function

	'anropar funktion
	kontroll

'kontrollerar om bokningsnumret redan fanns eller inte
if r = true then
	'det fanns, kör kontrollen igen
	kontroll
elseif r = false then
	'sql som utförs om bokningsnumret inte existerade
		
end if
Medlem sedan jan. 20032 285 inlägg
#2

Går det kanske bättre såhär?

<%
strSQL = "SELECT boknr FROM losenord"
Set objRS = con.Execute(strSQL)

Randomize
intSlump = Int(Rnd * 19999999)
Do Until objRS.EOF
  strFinns = strFinns & " " & objRS("boknr")
  objRS.MoveNext
Loop

Do Until blnDone
  If InStr(strFinns, intSlump) <> 0 Then
    intSlump = Int(Rnd * 19999999)
  Else
  ' Gör grejen...
    blnDone = True
  End If

Set objRS = Nothing
%>

/red Gjorde om koden...

Medlem sedan mars 20025 907 inlägg
#3
function boknr()
    randomize
    boknr = Int(Rnd * 19999999)
end function

gammalt = true
Do while gammalt
    tmp = boknr()

    sql = "select boknr from losenord where boknr =" tmp
    set rs = con.execute(sql)
    if rs.eof
      'Bokningsnumret fanns inte i databasen, spara det!
       con.execute("insert into losenord (boknr) values ("&tmp&")")
       con.close
       gammalt = false
    End if
Loop
Medlem sedan juni 200032 967 inlägg
#4

OT: Använd inte [php]-taggar till asp-kod. Det gör bara koden mer svårläst, eftersom färgkodningen blir helt off.

Mvh

268 ms totalt · 3 externa anrop · v20260731065814-full.767b4345
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)