我正在OSQL
通过 inno setup 执行一些 sql 查询。我正在使用以下代码运行OSQL
。这仅用于示例目的
SQLQuery:= '"EXEC sp_addserver ''PCNAME'';"';
Param:= '-S(local) -Usa -Psa -Q ' + SQLQuery;
Exec('osql.exe', Param, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
这工作正常。问题是ResultCode
值始终为 0。即使查询没有被执行。例如,如果我尝试像下面这样的相同查询,其中我传入了一个无效的存储过程名称,ResultCode
它仍然是 0。
SQLQuery:= '"EXEC sp_invalidname ''PCNAME'';"';
Param:= '-S(local) -Usa -Psa -Q ' + SQLQuery;
Exec('osql.exe', Param, '', SW_HIDE, ewWaitUntilTerminated, ResultCode);
为什么不给我一个正确的代码。如果我在管理工作室中运行第二个查询,我会收到这样的错误
Msg 2812, Level 16, State 62, Line 1
Could not find stored procedure 'sp_invalidname'
这里的返回码是2812
. 当我通过 inno 运行它时,为什么我没有得到这个。我需要做什么才能在 inno 中获取此错误代码?