c# - AMO OLAP 查询绑定
问题描述
根据业务逻辑,有时我需要更改 Cube 中客户维度的源表。
以前我使用以下代码更改多维数据集的结构:
MyServerDataSourceView.Schema.Tables["DimCustomers"].ExtendedProperties["QueryDefinition"] = "new query";
MyServerDataSourceView.Update(); // update to new definition
DimCustomer.Process(ProcessType.ProcessAdd, EF);
MyServerDataSourceView.Schema.Tables["DimCustomers"].ExtendedProperties["QueryDefinition"] = "old regularquery";
MyServerDataSourceView.Update(); // revert back to old definition
但这并不值得信赖。有时它不会恢复查询定义。
Visual Studio 表明可以使用queryBinding。
我正在尝试这样的代码:
string queryAdd = "SELECT [a],[b],[c] FROM ase.newtable";
QueryBinding queryBinding = new QueryBinding();
queryBinding.QueryDefinition = queryAdd;
DimCustomer.Process(ProcessType.ProcessAdd, queryBinding);
并得到以下错误,它并没有说太多:
警告:ProcessAdd 客户维度的 0x80019002 - 序列容器:SSIS 警告代码 DTS_W_MAXIMUMERRORCOUNTREACHED。Execution 方法成功,但引发的错误数 (1) 达到了允许的最大值 (1);导致失败。当错误数量达到 MaximumErrorCount 中指定的数量时,就会发生这种情况。更改 MaximumErrorCount 或修复错误。
我试图研究Microsoft 文档,但没有找到任何示例或明确的解释。