2012-10-09 56 views
0

我有一些问题,生成一个唯一的ID,并检查,以确保生成的ID不在数据库中。我写了两个简单的函数,但每次运行时,都会出现内存不足错误。随机数字和数据库检查

有没有更好的方法来做到这一点?

这里是我的代码:

uniqueID = getID() 

function getID() 
Dim id : id = getUniqueID 'simple random number generator 
    if checkForID(id) = 0 then 
     return id 
    else 
     id = getID() 
    end if 
end function 

function checkForID(id) 
    SQL="SELECT * FROM userOrderDxTest WHERE orderID =" & id 
    set rs=Server.CreateObject("ADODB.recordset") 
    rs.Open SQL,DB,adOpenStatic 
    if not rs.EOF then 
     checkForID = 1 'ID already exists 
     rs.close 
     set rs = nothing 
    else 
     checkForID = 1 'ID doesn't exist 
    rs.CLOSE 
    end if 
end function 

回答

1

您总是在checkForID 1。它应该是:

if not rs.EOF then 
    checkForID = 1 'ID already exists 
    rs.close 
    set rs = nothing 
else 
    checkForID = 0 'ID doesn't exist