У меня есть устаревший веб-сайт, который я поддерживаю (построенный в основном на классическом ASP с vbscript). Я вносил в него некоторые изменения и устал ждать 5 минут каждый раз, когда мне приходилось просматривать одну из страниц, которая загружала 99000 записей из базы данных, прежде чем отображать первые 20 из них, поэтому я переписал код следующим образом:
sSQL = "WITH OrderedAgreements AS (SELECT *, ROW_NUMBER() OVER (ORDER BY " & strSort & ") AS 'RowNumber' FROM ServiceAgreement " & WhereClause & ")"
sSQL = sSQL & " SELECT * FROM OrderedAgreements WHERE RowNumber BETWEEN " & iStartRec & " AND " & iStartRec + iPageSize - 1
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sSQL, SQLConn, adOpenStatic, adLockReadOnly
(цель - вернуть только те строки, которые действительно будут отображаться).
Это нормально работает при запуске из IIS-7 на моей локальной машине разработки (Windows 7). Он обращается к тестовой базе данных под SQL Server 2008 на сервере разработки в соседней лаборатории.
Однако, когда я запускаю идентичный код на бета-сайте на производственном сервере (т. Е. Параллельное дерево каталогов к производственному сайту, доступ к которому осуществляется через другой порт HTTP), он выдает «синтаксическую ошибку рядом с ключевым словом» WITH «"
Рабочий сервер работает под управлением Windows Server 2003 R2 и IIS 6, но я не могу придумать причину, по которой это может привести к ошибке на одном компьютере, а не на другом. Они запускают идентичный код, подключаясь к одной и той же базе данных, доступ к которой осуществляется с помощью одной и той же последовательности команд. Я даже поместил некоторый код входа в систему для вывода генерируемого SQL, и он идентичен в обоих случаях. Обе машины работают под управлением 2.0 / 3.0 / 3.5. На обеих машинах установлен SQL Server 2008.
Мне доступен рабочий сервер (через RDP), но на нем нет Visual Studio. Я почти сообразил, как выяснить, почему один и тот же код получает ошибку синтаксиса SQL на одном компьютере, а не на другом.
Может кто-нибудь дать мне подсказку о том, как действовать?
Спасибо.