2011-11-18 20 views
0

請幫我在這....SSRS 2008 ..如何創建下拉對於不同的數據庫菜單中的同一服務器

  1. 很少有數據庫DB1,DB2,DB3,DB4,DB5 .. ...

  2. 每個數據庫都有相同的表T1,T2,T3 ..... Tn。 (每個表具有相同的列C1,C2,C3 ......的C n ...但數據這些表中的是不同的)

  3. 要求: * 查詢: *選擇C1,C2,C3從T1內部加入T2在T1上.C4 = T2.C4

    查詢對於所有數據庫都是相同的。

  4. 第一步是創建下拉菜單數據庫DB1,DB2,DB3,DB4,DB5

  5. 然後查詢應運行選定的數據庫或databeses後,選擇一個或多個數據庫。

我應該選擇什麼來源以及如何爲它們創建數據集?

回答

0

創建一個名爲類似SelectedDatabase的參數。

硬編碼其中的可用數據庫的值。

更改查詢表達式是這樣的:

="select C1, C2, C3 from " & Parameters!SelectedDatabase.Value & ".T1 inner join " & Parameters!SelectedDatabase.Value & ".T2 on T1.C4 = T2.C4" 

這是一個動態查詢的一個例子 - 你可以找到更多here

請注意,如果用戶可以直接輸入將在動態查詢中使用的值,那麼您將打開代碼的風險爲SQL injection attacks(強制性XKCD參考here)。這就是爲什麼你應該對可用值進行硬編碼(如果可能的話)。

+0

嗨馬克感謝您的回覆。\ – Ritesh

+0

謝謝馬克。這對我幫助很大。 – Ritesh

0

您可以在此給出一個嘗試:

  1. 地圖所有的數據源部署描述符(web.xml/WEB-config.xml中)

  2. 通過將獲得基於請求中的數據源關鍵的下拉值

  3. 一旦你有正確的數據源獲取連接和執行查詢

相關問題