Ich würde dir nicht den Umweg über den Provider des SQL-Server's empfehlen, der scheint da eher fehlerhaft zu sein.
Verwende entweder den CA-NET-Treiber direkt (ab V5 im CA enthalten) oder die nativen .NET-ODBC-Klassen.
Mit diesen hatte ich noch nie Probleme.

Eine Beeinflussung des Datenpuffers direkt ist leider nicht möglich, da dies die .NET-Klassen erledigen.

Ursache ist, dass SQLGetData einen Datenpuffer für die Übergabe benötigt.
In obigem Beispiel wird 2 übergeben, da die Feldlänge wohl 2 Zeichen ist.
Als WCHAR wird jedoch ein Puffer von 4 Byte benötigt!

Wenn es also mit dem vorherigen SP2 geklappt hat und nun mit SP3 nicht, würde ich den Fehler nicht bei anderen suchen sondern im SP3.