无法使用 pyodbc python 模块查询 EXEC 命令

can't query EXEC command with pyodbc python module

我正在使用 pyodbc 查询 MSQLS 数据库,在我尝试使用 EXECUTE 命令之前一切正常

例子

querys= """
    EXEC sys.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'HARDWARE\DESCRIPTION\System\CentralProcessor[=11=]', N'ProcessorNameString';
    """

我明白了

pyodbc.ProgrammingError: No results.  Previous SQL was not a query.

我也试试ODBC方式

query= r'{call sys.xp_instance_regread ("HKEY_LOCAL_MACHINE", "SYSTEM\CurrentControlSet\services\pvscsi\Parameters\Device", "DriverParameter")}'

然后我得到

pyodbc.DataError: ('22018', '[22018] [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification (0) (SQLExecDirectW)')

有解决此问题的想法吗? 提前致谢

存储过程的参数包含反斜杠,因此您必须在常规字符串文字中将它们加倍...

" ... N'HARDWARE\DESCRIPTION\System\CentralProcessor\0', ... "

...或使用“原始字符串”

r" ... N'HARDWARE\DESCRIPTION\System\CentralProcessor[=11=]', ... "