我试图通过Powershell通过InterSystems ODBC驱动程序获取一些数据,但是查询执行中出现了一个错误(01004“字符串数据,右截断”)。我想忽略它(或者在PS中处理这个错误),让脚本继续前进。下面是我代码的一部分:
$c = new-object system.data.odbc.odbcconnection
$c.connectionstring = "..."
$c.open()
$cmd = New-object System.Data.Odbc.OdbcCommand( $sql , $c )
$dst = New-Object System.Data.DataSet
$oda = New-Object System.Data.Odbc.OdbcDataAdapter( $cmd )
$oda.Fill( $dst )当我使用-NoExit参数运行脚本时,它不会崩溃并接受数据,即:
Powershell -NoExit Y:\test.ps1否则,Powershell崩溃,控制台关闭。我需要从另一个脚本运行这个脚本,并最终收到结果。最后,我想关闭控制台窗口(现在我通过exit调用它)。
到目前为止,我尝试了try-catch块、抛出、Invoke-Expression (以几种方式)、return函数等等。我寻找了一个解决方案来处理这样的错误,但没有结果。
发布于 2022-06-03 12:48:14
我已经找到了解决办法(或者解决办法)。最好是使用ADODB对象而不是System.Data.Odbc。最简单的代码如下:
$connection = New-Object -ComObject ADODB.Connection
$command = New-Object -ComObject ADODB.Command
$recordset = New-Object -ComObject ADODB.Recordset
$connection.CursorLocation = 3
$connection.ConnectionString = $c_s
$connection.Open()
$command.ActiveConnection = $connection
$command.CommandText = $sql
$command.CommandType = 1
$recordset.ActiveConnection = $connection
$recordset.Open( $command )https://stackoverflow.com/questions/71051135
复制相似问题