Klassisk C5 2012 for SQL, Windows 8 og SQL Server 2005

Siden Servicepack 1 til klassisk C5 2012 kom på gaden har databasekompatibilitetsdokument indeholdt en note 11, der siger:

…og det er jo meget godt. Men hvordan udmønter det sig i praksis?

Ja, får du mystiske fejl fra C5 under opstart – som fx:

  • sp_cursorfetch: The cursor identifier value provided (x) is not valid
  • Could not find prepared statement with handle x
  • Regnskabet “dat” eksisterer ikke

…ja så er du rendt ind i den her.

 

“Fejlen” skyldes at den “SQL Driver” der leveres med Windows 8.1 IKKE fungerer med SQL Server 2005 – så det er sådan set ikke C5s skyld.

 

Den hurtigste løsning er at hente en ældre SQL driver – fx “Microsoft® ODBC Driver 11 for SQL Server® – Windows” fra adressen http://www.microsoft.com/en-us/download/details.aspx?id=36434.

Bemærk dog at der ligger både en 32 bits (x86) og en 64 bits (x64) driver – og da C5 er et 32 bits program, er det 32 bits driveren du skal bruge.

 

Det er dog ikke helt nok – for C5 defaulter til at bruge den i Windows indbyggede SQL-driver, så du skal lige have følgende i C5.ini (eller nok nærmere på din genvej til C5, så du ikke forstyrrer andre, ældre Windows’er i din installation): “-z@driver={ODBC Driver 11 for SQL Server}”. Se evt. dette indlæg om hvad den gør.

 

Får du stadig fejlen derefter?

Prøv lige engang mere uden Tuborg-parenteserne – dvs. “-z@driver=ODBC Driver 11 for SQL Server”. Der er desværre i skrivende stund lidt forskellige meninger om hvorvidt de skal være der :-).

 

Bemærk at:

  • Det er ikke kun Windows 8.1 der har dette problem med manglende SQL 2005 driver – Windows Server 2012 R2 har samme problem
  • Microsoft XAL helt sikker lider af samme fejl – der dog formentligt kan løses på samme måde