У меня есть ВЫБОР с:
СТАТУС -1, 0 и 1.
ВЫБРАТЬ Устав:
SQL= "SELECT * FROM MYTABLE ORDER BY STATUS DESC"
SET MYDB = conn.Execute(SQL)
Моя проблема:
Разделите SELECT на две части с помощью DO WHiLE / LOOP
ЧАСТЬ 1:
- "НЕ EOF", конечно
- ВСЕ СТАТУС 1 (предел регистра приоритета и отмены)
- Ограничение до XX регистров (переменная - TOTALREG)
- НЕТ СТАТУСА -1
** STATUS 1 является статусом «Одобрено» и может отменять ограничение регистров.
У меня есть класс с 20 учениками. (лимит регистров)
но я могу перебронировать это и сделать урок с 21, 22, 23 студентами - с «СОСТОЯНИЕ 1» = утверждено.
Если у меня есть только 15 утвержденных - я завершу предел регистров с первыми 5 "STATUS 0" (Ожидание подтверждения).
ЧАСТЬ 2:
Я получил частичное решение с этим:
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 )
- COUNTREG = будет увеличиваться для каждого регистра внутри LOOP (countreg = countreg + 1)
- TOTALREG = является переменной (количество человек, допускаемых в классе)
Работает со всеми ситуациями .. но когда у меня нет регистров со STATUS = -1 - я получил ошибку '80020009'
почему? есть идеи?