/ / Ako predstierať staršiu verziu servera SQL Server, aby podporoval starší kód aplikácie - sql-server, foxpro

Ako falošná staršia verzia servera SQL Server na podporu staršieho kódu aplikácie - sql-server, foxpro

Mám starú aplikáciu, ktorá kontroluje, čiverzia servera SQL Server je 6.5, 7 alebo 2000. Ak nie, vráti chybu nepodporovanú databázu. Chcel by som, aby táto aplikácia používala databázu na serveri SQL Server 2008. Existuje spôsob, ako fingovať verziu tak, aby kontrola aplikácie pre verziu SQL Server prešla. Mojím starým kódom aplikácie je FoxPro. Nemám prostriedky na prekompilovanie aplikácie FoxPro.

odpovede:

6 pre odpoveď č. 1

Skúsil si to nastavenie úrovne kompatibility až 80 (čo znamená SQL Server 2000):

EXEC sp_dbcmptlevel AdventureWorks, 80;

Verzia databázy SQL Server môže byť jedna z nasledujúcich:

  • 60 = SQL Server 6.0
  • 65 = SQL Server 6.5
  • 70 = SQL Server 7.0
  • 80 = SQL Server 2000
  • 90 = SQL Server 2005

3 pre odpoveď č. 2

Aplikácie zvyčajne overujú aktuálnu verziu servera začiarknutím jedného z nich @@VERSION alebo SERVERPROPERTY("ProductVersion"). Oba je nemožné prepísať alebo predstierať.

Aplikácie, ktoré to umožňujú nie výslovne skontrolujte, či je možné verziu spustiť v databáze s nižšou úrovňou kompatibility. Ale ak má aplikácia kód, ktorý explicitne kontroluje jednu z vyššie uvedených možností, nemôžete nič robiť.


2 pre odpoveď č. 3

Nastavenie úrovne kompatibility databázy by malo fungovať dobre. Môžete to urobiť pomocou sp_dbcmptlevel