Как подделать старую версию SQL Server для поддержки устаревшего кода приложения - PullRequest
2 голосов
/ 28 июня 2010

У меня есть устаревшее приложение, которое проверяет, является ли версия SQL Server 6.5, 7 или 2000. Если нет, возвращается ошибка базы данных, которая не поддерживается. Я хотел бы, чтобы это приложение использовало базу данных на SQL Server 2008. Есть ли способ подделать версию, чтобы проверка приложения прошла для версии SQL Server. Мой старый код приложения - FoxPro. У меня нет возможности перекомпилировать приложение FoxPro.

Ответы [ 3 ]

6 голосов
/ 28 июня 2010

Вы пытались установить уровень совместимости на 80 (что означает SQL Server 2000):

EXEC sp_dbcmptlevel AdventureWorks, 80;

Версия базы данных SQL Server может быть одной из следующих:

  • 60 = SQL Server 6.0
  • 65 = SQL Server 6.5
  • 70 = SQL Server 7.0
  • 80 = SQL Server 2000
  • 90 = SQL Server 2005
3 голосов
/ 28 июня 2010

Приложения обычно проверяют текущую версию сервера, проверяя либо @@VERSION, либо SERVERPROPERTY('ProductVersion'). Оба невозможно переопределить или подделать.

Приложения, которые не явно проверяют версию, могут работать в базе данных с более низким уровнем совместимости. Но если в приложении есть код, который явно проверяет одно из вышеперечисленных, вы ничего не можете сделать.

2 голосов
/ 28 июня 2010

Настройка уровня совместимости базы данных должна работать нормально.Вы можете сделать это, используя sp_dbcmptlevel

...