我在使用以下代码从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”部分,否则我得到另一个例外(“文件可能正在使用中”)。
连接字符串有什么问题?如何诊断错误?有人请指导我......
答案 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 ”。
在此修改后,立方体已正确创建。希望这会有所帮助。