尝试执行数据集填充时出现不一致的Powershell错误

时间:2018-06-11 07:17:51

标签: powershell olap powershell-v4.0 oledbconnection oledbdataadapter

我是Powershell的经验相对较少,非常感谢您的帮助。

我有一个运行多个查询并将数据保存到文件的脚本(基于MSOLAP连接)。 每个查询都有一个唯一的QueryID,它使用Python脚本(执行此操作+更多)从Excel电子表格中引用,然后将此QueryID传递给Powershell以执行查询。

该脚本有效,但我在此步骤中收到某些QueryID的错误:

$adapter.Fill($dataset)

有些工作,有些人不做。这是一种非常不一致的行为。

错误是:

  

异常通话"填写"用" 1"参数:"对象引用未设置为对象的实例。"   在D:\ script.ps1:33 char:1   + $ adapter.Fill($ dataset)   + ~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:) [],MethodInvocationException       + FullyQualifiedErrorId:NullReferenceException

我使用Excel Powerpivot手动运行查询,它对那些QueryID和数据存在有效。参考Excel电子表格的内容是有效的,我也检查了。

我的代码如下:

$param ($QueryID)
$connectionString = “Provider=MSOLAP.5;Integrated Security=SSPI;Persist Security Info=True;Data Source=1.2.3.4;Initial Catalog=Reporting;MDX Compatibility=1;Safety Options=2;MDX Missing Member Mode=Error”
$query = "SELECT QUERY..."+$QueryID+"MORE OF THE QUERY"

$savefilename = ("D:\output.csv")

$connection = New-Object -TypeName System.Data.OleDb.OleDbConnection
$connection.ConnectionString = $connectionString

$command = $connection.CreateCommand()
$command.CommandTimeout = 0 

$command.CommandText = $query 
$adapter = New-Object -TypeName System.Data.OleDb.OleDbDataAdapter $command  
$dataset = New-Object -TypeName System.Data.DataSet

$adapter.Fill($dataset)

foreach ($Row in $dataset.Tables[0]) {
    #...
}

0 个答案:

没有答案