2015-07-20 48 views
0

隨着進度9.1e,我正在使用動態查詢來進行可擴展數據提取。有時在動態查詢中忽略字段短語

我使用的形式

FOR EACH tableName FIELDS(fieldName1 fieldName2) NO-LOCK 
    WHERE fieldName3 = "Value" 
    AND fieldName4 = "AnotherValue" 

和某些查詢的查詢,尤其是與表中的幾個字段的那些,田野短語工作,只檢索請求。

但是,在其他查詢中,有趣的是具有更長和更復雜的字段列表(包括數組等)的查詢會檢索整個記錄。

我讀過關於檢索連接所需的其他字段的各種討論,但我簡化了查詢,所以這不是問題。

查詢指定無鎖,get-next參數也是如此,因此排他鎖的完整記錄也不應相關。

Progress是否有其他標準決定選擇整個記錄,並且有什麼方法可以阻止它?

+0

您應該關心檢索的FIELDS的唯一時間是通過緩慢的網絡連接來減少網絡流量。 –

+0

@TimKuehn - 這可能是預期的用途,但我試圖建立一個動態查詢過程,它允許配置額外的數據以提取「未來驗證」,並且Progress動態查詢沒有SELECT短語, FIELDS似乎是僅提取所選記錄中的必需字段的唯一選項。否則,我將不得不在其他地方的配置中包含必需字段的列表,這是不理想的。 – Screwtape

+0

根據10條,我不明白你將如何讓這個領域做你正在尋找的東西。2B文檔:「當您指定一個字段列表時,AVM可能會根據檢索操作的類型和提供該記錄的DataServer檢索附加字段或完整記錄。」 實質上,記錄短語的FIELDS部分是由於各種原因可以覆蓋AVM的建議。 –

回答

0

我不知道這個問題的答案,我擔心你可能得不到一個答案,因爲運行這樣的老版本Progress的人經常被忽略。

對我而言,您可以將FIELDS與動態查詢配合使用,但文檔暗示這是事實。

我很好奇你怎麼知道它檢索整個記錄,除非你是數據包嗅探什麼的?

無論如何,這裏有幾件事情你可以檢查:

  • fldisable啓動參數
  • rereadfields啓動參數
  • 混亂與除
  • 進步知識庫,但我只是檢查快速,couldn找不到有用的東西。我隱約記得一些版本的bug,其中你的問題響了一聲鍾

祝你好運。

+0

嗨,謝謝!我知道檢索的方式是通過緩衝區獲取hBuf:BUFFER-FIELD(i),然後檢查hFld:AVAILABLE。當字段短語有效時,我只獲得一個或兩個可用字段。當它不起作用 - 我得到了整個記錄。我希望能夠使用字段短語來選擇要查詢的字段。 – Screwtape

+0

TIL,您可以在字段上使用AVAILABLE!謝謝! – GregT