in reply to Perl OLE32 MSSQL SELECT dateadd function results in “Cursor type changed” error
If you look at the Description section of Win32::OLE's documentation, the first two sentences are: "This module provides an interface to OLE Automation from Perl. OLE Automation brings VisualBasic like scripting capabilities and offers powerful extensibility and the ability to control many Win32 applications from Perl scripts."
Basically, that means you're not going to be able to run queries directly against a database using that module. Instead, it would allow you to control Windows applications (such as Microsoft Office products). If you want to run queries directly against a database, you might want to look into Win32::ODBC and/or DBD::ODBC.
Although it sounds like you're not allowed to install other modules, that may not be an issue. Here's info on 3 popular Perl distributions for Windows:
Also, I think there's more to your code than what you posted. In your posted code, it looks like $conn and $rs are objects, but those objects are not defined or created. And your posted code has an unfinished if statement. When I try running your code (with the if statement commented out), it bails on the $conn->open; line with the following error message: Can't call method "open" on unblessed reference at test.pl line 3.
In other words, your posted code doesn't reproduce the error messages that you say that you're seeing. Perhaps if you can share more information on your limitations and what you're trying to do or maybe some reduced code that can reproduce your error message, others might be able to help you out more.