如何在C#中创建脱机OLAP多维数据集?

时间:2009-11-25 16:35:23

标签: c# olap-cube

我在使用以下代码从C#创建脱机OLAP多维数据集时遇到问题:

using (var connection = new OleDbConnection())
    {
       connection.ConnectionString = "Provider=MSOLAP;  Initial Catalog=[OCWCube];  Data Source=C:\\temp\\test.cub;  CreateCube=CREATE CUBE [OCWCube] (   DIMENSION [NAME],    LEVEL [Wszystkie] TYPE ALL,    LEVEL [NAME],   MEASURE [Liczba   DESCRIPTIO]    FUNCTION COUNT  );  InsertInto=INSERT INTO OCWCube([Liczba   DESCRIPTIO], [NAME].[NAME])  OPTIONS ATTEMPT_ANALYSIS  SELECT Planners.DESCRIPTIO, Planners.NAME  FROM Planners Planners;  Source_DSN=\"CollatingSequence=ASCII;DefaultDir=c:\\temp;Deleted=1;Driver={Microsoft dBase Driver (*.dbf)};DriverId=277;FIL=dBase IV;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=600;SafeTransactions=0;Statistics=0;Threads=3;UserCommitSync=Yes;\";Mode=Write;UseExistingFile=True";
        try
        {
            connection.Open();
        }
        catch (OleDbException e)
        {
            Console.WriteLine(e);
        }
    }

我继续得到以下异常:

“多步操作生成错误。检查每个OLE数据库状态值。未执行任何操作。”

我从Excel生成的OQY文件中逐字地获取了连接字符串。我不得不添加“Mode = Write”部分,否则我得到另一个例外(“文件可能正在使用中”)。

连接字符串有什么问题?如何诊断错误?有人请指导我......

2 个答案:

答案 0 :(得分:2)

最近,我发现了这三部分教程,希望对你有帮助

http://netpl.blogspot.com/2007/11/complete-olap-infrastructure-without.html

答案 1 :(得分:0)

这次微软支持为我找到了一个可行的解决方案!它非常简单 - 连接字符串的最后一部分应如下所示:

Source_DSN = dbfodbc32; Mode = ReadWrite; UseExistingFile = False

最关键的部分是“ Mode = ReadWrite; UseExistingFile = False ”。

在此修改后,立方体已正确创建。希望这会有所帮助。