gpt4 book ai didi

c# - Mono Develop Microsoft Authentication for Microsoft Analysis 服务器

转载 作者:行者123 更新时间:2023-11-30 17:46:11 24 4
gpt4 key购买 nike

对于我的研究,我需要能够使用 Unity 游戏引擎查询 Microsoft 分析服务器 (2012) 数据立方体。 对于连接,有一个 需要 Microsoft 身份验证Unity 正在使用 Mono Develop 库进行 SQL 连接,这给我带来了问题。到目前为止,我还没有找到让 Mono 能够使用 Microsoft 身份验证的解决方案。

我想找到一种在客户的域内使用 windows 身份验证 的好方法。由于最终应用程序必须能够连接到数据立方体,最好使用连接字符串

使用允许使用 SOAP 的 HTTP 连接的 IIS 服务器 的数据立方体并不总是可用,具体取决于客户设置。此外,在多个平台上构建应用程序的愿望使得添加自定义库变得困难,即使这个请求有一个自定义库,因为我无法找到还有一个。

我目前不幸的一面是:

  • 使用 visual studio 构建一个额外的 windows 应用程序,查询数据并将其解析为 Unity(但是需要额外的应用程序来跑)。
  • 使用带有 IIS 服务的 http SOAP 连接(但需要使用 IIS 设置分析服务器,这并非总是可行,具体取决于客户)。
  • 找到一个允许我使用 Microsoft 身份验证 的库(但可能只适用于 Windows 平台,或者不适用于 Unity)。

我希望有人已经找到或者可能知道一个适用于 Unity 的好解决方案,并且没有我上面提到的限制。


我正在使用 Microsoft.AnalysisServices.AdomdClient;使用 visual studio 可以很好地构建 visual studio,但不能在 monodelop 中统一使用。

try
{
using (AdomdConnection adcon = new AdomdConnection(connectionString))
{
adcon.Open();
using (AdomdCommand adcmd = adcon.CreateCommand())
{
adcmd.CommandText = textBox3.Text.ToString();
AdomdDataReader dr = adcmd.ExecuteReader(CommandBehavior.CloseConnection);

while (dr.Read())
{
for (int i = 0; i < dr.FieldCount; i++)
textBox2.AppendText(dr[i] + (i == dr.FieldCount - 1 ? "" : ", ") + Environment.NewLine);
}
dr.Close();
textBox2.AppendText(adcmd.CommandText.ToString() + Environment.NewLine + Environment.NewLine);

adcmd.Connection.Close();
}

adcon.Close();
}
}
catch(Exception e)
{
textBox2.AppendText(e.ToString() + Environment.NewLine);
}

感谢您的任何建议、反馈或回答!

最佳答案

您可以尝试使用关系型 SQL Server 引擎作为一种代理。只要 Analysis Services 可用,关系型 SQL Server 引擎就应该可用。

您可以在关系 SQL Server 中设置一个链接服务器,它使用 Analysis Services OLEDB 客户端链接到 Analysis Services 服务器。描述了如何设置链接服务器 here .

然后您可以将 MDX 发送到此链接服务器,并像这样在关系引擎中取回结果:

select * from openquery(AdventureWorksOLAP, 
'select [Measures].[Sales Amount] on columns from [Adventure Works]')

其中 AdventureWorksOLAP 是链接服务器的名称。

但是,您应该知道列名很奇怪(包含右方括号,需要通过加倍在包含列名的方括号内进行转义)。例如上面的查询将有一个列,您必须以 [[Measures]].[Sales Amount]]] 的形式访问该列。此外,所有单元格值都以 nvarchar 形式返回,可能需要转换为数字类型才能使用它们。

也许您可以将列名称更改和列类型转换封装到存储过程中。

并且您可以使用 SQL 服务器身份验证来访问关系数据库。

关于c# - Mono Develop Microsoft Authentication for Microsoft Analysis 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com