2010-02-14 48 views

回答

2

如果數據集來自一個基於SQL存儲引擎,使用select使用結果集中只有來自主表的字段來對連接表進行查詢。讓SQL引擎爲你做好工作。

+0

從三個層面表格嵌套的XML文件中的數據卡梅斯。謝謝 –

+0

如果你自己解析XML數據,你可以在master數據集中添加一個額外的字段ChildNodeCount,並在解析時填充它,並使用OnFilterRecord檢查它是否大於0.無論哪種方式:最後歸結爲計數子記錄:通過一個SQL引擎,一個mster細節鏈接,你自己的解析器等等等。在主表中計數會讓你在細節數據集中使用記錄掃描進行過濾的速度優勢,但這隻會是一個問題,如果你有大數據量。 –

1

根據您的情況,您可以使用:

  1. OnFilterRecord情況下,你可以有:

    接受:= myDataSetField.NestedDataSet.RecordCount> 0;

  2. 如果您有一個SQL後端,您可以使用ExistsCount以僅提取您需要的記錄。如果你通過網絡,或許是最好的方法。但我不知道你有什麼基礎設施。

  3. OnFilterRecord情況下,你可以有:

    接受:=不myDataSetField.IsNull; //只是測試如果DataSet字段爲空 - 這是的最快辦法做到這一點 一個......但是這取決於你的數據結構/數據集等

  4. 有時是更好地在你的DataSet/Table中有一個專門的字段來指定這個狀態,因爲通常從嵌套數據集獲取這樣的信息可能很昂貴。 (其中一個必須至少部分獲取它)

  5. 另外,出於同樣的考慮(參見上面的4.),也許你可以有一個存儲過程(如果你的數據庫後端允許)獲得這個信息。

HTH