在我問我的問題之前,我澄清說我知道xe:sqlParameter選項。XPages和xe:jdbcQuery - 動態查詢
問題:我該如何實現根據用戶在頁面上輸入動態準備查詢的可能性?
示例場景:帶有數據的SQL表「datatable1」也具有「類型」和「顏色」列。我通過使用以下代碼顯示錶中的所有內容:
<xp:this.data>
<xe:jdbcQuery var="dataDS" connectionName="dataConnection">
<xe:this.sqlQuery><![CDATA[SELECT * FROM datatable1]]></xe:this.sqlQuery>
</xe:jdbcQuery>
</xp:this.data>
數據表內容本身由xe:dataView顯示。
因此,基本的問題,是有可能與單一數據源XE覆蓋:下面jdbcQuery和單頁中列出的所有情況:
案例1:最終用戶看到的所有記錄(這是由代碼覆蓋以上);
情況2:最終用戶希望看到的所有記錄,其中顏色= 「紅色」
對於這種情況下,我會使用查詢:「SELECT * FROM datatable1 WHERE color =?「並通過xe:sqlParameter傳遞參數值。但是這樣可以查看所有記錄,因爲我無法通過意義上的「任何」來傳遞價值。或者可能嗎?
情況3:最終用戶希望看到的所有記錄其中type = 「汽車」
非常類似於情形2
情況4:最終用戶希望看到的所有記錄,其中顏色=「紅」和類型=「汽車」
對於這種情況,我會使用查詢:「SELECT * FROM datatable1 WHERE color =? ?和type =」以及通過XE parametrs傳值:SqlParameter的
在這一刻我沒有看到解決我的問題......當然,我可以做的SQL數據庫查詢動態的ManagedBean,但隨後我丟失了xe:dataView的排序和演示功能,並且必須手動執行它,比如說通過重複或xp:dataTable,我想避免什麼...
感謝您的職位!
感謝您的想法,但我無法得到它的正常工作......所以,如果我想有準備語句,要顯示所有記錄,結果(計算)公式應該是[SELECT * FROM datatable1 WHERE color LIKE%AND type LIKE%]?如果我錯了,你能糾正我嗎?僅供參考:我正在使用PostgreSQL。 – 2015-04-01 19:37:39
你需要一個圍繞%的單引號,如SELECT * FROM Customers WHERE Country LIKE'%'和ContactName LIKE'%'; – Howard 2015-04-02 13:37:43
請參閱http://www.w3schools.com/sql/sql_like.asp並嘗試使用Try It Yourself按鈕,然後您可以添加自己的sql進行實驗。 – Howard 2015-04-02 13:39:06