CLASSIC ASP - Do while / Loop有3个条件问题

时间:2018-05-07 09:59:40

标签: loops asp-classic

我有一个选择:

STATUS -1,0和1。

SELECT Statment:

SQL= "SELECT * FROM MYTABLE ORDER BY STATUS DESC" 
SET MYDB = conn.Execute(SQL)

我的问题:

使用DO WHiLE / LOOP

将SELECT分为两部分

第1部分:

  • " NOT EOF"当然
  • 所有状态1(优先级和重写注册限制)
  • 限制为XX寄存器(变量 - TOTALREG)
  • NO STATUS -1

**状态1是"已批准"状态并可以否决寄存器的限制。

我有一个有20名学生的教室。 (登记限制) 但我可以覆盖这个,并与21,22,23名学生一起上课 - 与#34; STATUS 1" =批准。

如果我只有15个被批准 - 我将用第一个5" STATUS 0"完成寄存器的限制。 (等待批准)。

第2部分:

  • SELECT的其余部分

我有一个PARTIAL解决方案:

DO WHILE (((NOT MYDB.EOF) AND (CINT(COUNTREG) <= CINT(TOTALREG))) OR ((NOT MYDB.EOF) AND (MYDB("STATUS") > 0 ))) AND ((NOT MYDB.EOF) AND (MYDB("STATUS") > -1 ))    
  • 如果我们有空缺:(NOT MYDB.EOF) AND (CINT(COUNTREG) <= CINT(TOTALREG))
  • 如果注册被批准:(NOT MYDB.EOF) AND (MYDB("STATUS") > 0 )
  • 排除未经批准的寄存器(状态-1):(NOT MYDB.EOF) AND (MYDB("STATUS") > -1 )




  - 对于LOOP内的每个寄存器,COUNTREG =将递增(countreg = countreg + 1)
  - TOTALREG =是变量(教室允许的人数)

它适用于所有情况..但是当我没有注册STATUS = -1时 - 我收到错误&#39; 80020009&#39;

为什么呢?任何想法?

0 个答案:

没有答案