2011-11-09 35 views
0

キューブから最後に更新された日付を取得しようとしています。私は1日に2回実行されるプロセスを持っています(結局、ボタンをクリックするだけで実行できるようにしたいと思っていますが、それはさらに下にあります)。私はこれのすべてに全く新しいです。SSAS/MDX/ADOMD.NET - キューブから最終更新日を取得する

今は、そのプロセスが最後に実行されたときのMDXクエリを使ってdatetime値を取得したいだけです。ここで

私の接続文字列です:

public AdomdConnection conn = new AdomdConnection("Data Source=BTN-SQL1;Initial Catalog=BTNTurboAnalysisServices;"); 

プロセスが呼び出される:プロセスSSAS

は、その後、私はここまで持っているが、私は私のMDXクエリで書くために何を知らない:

conn.Open(); 

    AdomdCommand cmd = conn.CreateCommand(); 

    cmd.CommandText = @" 
         SELECT 
         NON EMPTY { [] } ON COLUMNS, 
            { [] } ON ROWS 
         FROM  [Sales Analysis] 
         "; 

ありがとうございます、ありがとうございます!

答えて

2

スキーマを使用してその情報を取得できます。

私はADODBオブジェクトを使用していますが、対応するADOMDオブジェクトを見つけることができます。

Set objRst = objConnection.OpenSchema(32, Array(strCatalog, vbNullString, strCube)) 
dtLast = objRs("LAST_DATA_UPDATE") 

申し訳ありませんが...間違った答え...

はLASTSIBLING機能を試してみてください。 {[対策] [インターネット売上金額]。}列でを選択し、 {[日] [。会計年度]。[会計年度]。 & [2002] .LASTSIBLING}行中 から[アドベンチャーワークス]

+1

ありがとうございました!実際には、次のようにキューブのLastProcessedプロパティを使用して解決しました。cube.LastProcessed.ToString( "yyyy-MM-dd HH:mm:ss"); – CallumVass

+0

LastProcessedプロパティは、そのための良い解決策のように聞こえます。しかし、私は何か他のことをしました、私は標準のMS SQL DBテーブルにログを保持します。キューブを処理するたびに、プロセスの開始時間と終了時間が外部に記録されます。これにより、プロセスが実行されるたびにプロセスの継続時間を知るという付加価値が得られます。 – YuvalHerziger

関連する問題