首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InterSystems ODBC错误崩溃Powershell

InterSystems ODBC错误崩溃Powershell
EN

Stack Overflow用户
提问于 2022-02-09 14:13:43
回答 1查看 71关注 0票数 0

我试图通过Powershell通过InterSystems ODBC驱动程序获取一些数据,但是查询执行中出现了一个错误(01004“字符串数据,右截断”)。我想忽略它(或者在PS中处理这个错误),让脚本继续前进。下面是我代码的一部分:

代码语言:javascript
复制
$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参数运行脚本时,它不会崩溃并接受数据,即:

代码语言:javascript
复制
Powershell -NoExit Y:\test.ps1

否则,Powershell崩溃,控制台关闭。我需要从另一个脚本运行这个脚本,并最终收到结果。最后,我想关闭控制台窗口(现在我通过exit调用它)。

到目前为止,我尝试了try-catch块、抛出、Invoke-Expression (以几种方式)、return函数等等。我寻找了一个解决方案来处理这样的错误,但没有结果。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-03 12:48:14

我已经找到了解决办法(或者解决办法)。最好是使用ADODB对象而不是System.Data.Odbc。最简单的代码如下:

代码语言:javascript
复制
$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 )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71051135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档