2014-12-16 5 views
1

Почему следующие работы в VBScript (классический ASP)VBscript аномалии

Dim y: y = rs("file_description") 
Dim x: x = (instr(y, "Internal Server Error") <> 0 or instr(y, "Server Unavailable") <> 0) AND instr(y, "RetryCount=9") = 0 

Но это не работает. Это останавливает выполнение (без номера ошибки или описания!)

dim x: x = (instr(rs("file_description"), "Internal Server Error") <> 0 or instr(rs("file_description"), "Server Unavailable") <> 0) AND instr(rs("file_description"), "RetryCount=9") = 0 

Кажется странным, что просто извлекая rs("file_description") выражение в переменной вызывает код для работы.

Я не понимаю, почему.

ответ

1

rs("file_description") может означать объект поля или Свойство по умолчанию .Value. VBScript выбирает тот или иной объект в зависимости от контекста. Поскольку

y = rs("file_description") 

делает не использование Set, у будет содержать .Value. Чтобы все было ясно для второго подхода, используйте

x = (instr(rs("file_description").Value, ... 
Смежные вопросы