次のコードを使用して 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」セクションを追加する必要がありました。そうしないと、別の例外が発生していました (「ファイルが使用中の可能性があります」)。
接続文字列の何が問題になっていますか? エラーを診断する方法は? 誰か私を導いてください...