i came across a compatibility issue today, as a customer upgraded from Windows XP to Windows 7.
The (12 year old code) is calling a stored procedure on the SQL Server called
ai_nextid
Except that when it calls the stored procedure it is using the name:
ai_nextid;1
Yes, with a ";1
" appended. Apparently the SQL Server driver in Windows 95, Windows 2000, Windows XP, and possibly Windows Vista, are fine with this specifically added suffix. But the SQL Server ODBC driver in Windows 7 is different, and causes the error:
General SQL Error.
[Microsoft][ODBC SQL Driver][SQL Server]Could not find stored procedure 'ai_nextid;1'.
[Microsoft][ODBC SQL Driver][SQL Server]Indicator variable requried but not supplied'.
With native error 2812.
This brings up 4 questions:
- why were we appending
;1
to the end of the stored procedure name? (what does it accomplish) - why was the SQL Server driver ignoring it?
- why was a breaking change made in Windows 7?
- is the breaking compatibility change documented?
The last two questions would probably be the same, since if they document it, they would justify it.