我遇到問題,從我的程序的用戶在運行時定義的查詢中獲取字段列表。我讓我的用戶將一個SQL查詢輸入到一個備忘錄控件中,然後我想讓他們瀏覽將返回的字段,並執行格式化輸出,總計列值等操作。所以,我必須得到列名,以便他們有一個地方可以輸入附加信息。從DBExpress獲取字段列表TSQLQuery
我會做得很好,如果沒有參數,但我也必須讓他們爲查詢定義過濾器參數。所以,如果我想將參數設置爲空,我必須知道參數的數據類型是什麼。
我使用Delphi 2006.我使用DBExpress組件TSQLConnection和TSQLQuery連接到Firebird 2.1數據庫。以前,我成功地使用了:
for i:= 0 to Qry.Params.Count - 1 do Qry.Params [i] .value:= varNull;
我發現我有一個問題,當我試圖使用日期參數。這只是一個巧合,直到那時我的所有參數都是整數(記錄ID)。事實證明varNull只是一個值爲1的枚舉常量,所以我得到了可接受的結果(沒有記錄)工作正常。
我只需要一個字段列表。也許我應該解析SQL語句的SELECT子句。我認爲設置Qry.Prepared到True會給我一個領域的清單,但沒有這樣的運氣。它需要參數的值。
如果你有一個想法,我一定會喜歡聽。謝謝你的幫助。