我有使用SqlCommand
执行查询的问题,我使用ExecuteScalar()
方法,并把开放查询到它:SqlCommand.ExecuteScalar与链接OLAP服务器不返回任何值
SELECT * FROM OpenQuery(MY_OLAP,
'WITH MEMBER [Measures].[Out] AS
''[Measures].[Hours]''
SELECT NON EMPTY [Machine].[Stops].[All]
ON ROWS, [Measures].[Out] ON COLUMNS FROM [Machines]')
,并试图执行查询反对链接的OLAP服务器,但只有 我得到的是object=null
或空结果,但是当我在管理工作室中运行相同的查询时,它返回正确的值。比我加为了能够访问这个立方体链接服务器登录我的域用户
SqlConnection cubeConnection = new SqlConnection(cubeConnectonString);
using (SqlCommand cubeCmd = new SqlCommand(cubeQuery, cubeConnection))
{
cubeConnection.Open();
var tmp = cubeCmd.ExecuteScalar();
if (tmp==null) {
cuberesult = "0";
}
else tmp.ToString();
}
我添加链接OLAP服务器,我登录到服务器使用标准的认证,但是这并没有帮助。有人知道我错过了什么。
EXEC sp_addlinkedserver
@server='MY_OLAP',
@srvproduct='',
@provider='MSOLAP',
@datasrc='MYSQLSERVER',
@catalog='CUBE'
另外,您可能有双跳问题。 SSAS与MS SQL RDBMS位于同一台服务器上吗? –