請問在 ClientDataSet 甚樣可得一個 Field 的原 Table 名及 Field 名 |
缺席
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
justmade 兄, 這應該是沒辦法的, 除了解析 sql command 以外, 是沒有取得原 table name 和 column name 的. 因為 sql command 是往資料庫送去, 而由資料庫回傳結果集, 然而我們已將 column 及 table 的 alias name 送入資料庫中了, 資料庫當然依照我們給定的名稱來組合結果集, 所以就傳回的結果集來看是沒有辦法得到原始的 column 及 table name 的. 例如: select first_name + ' ' + last_name as user_name from member_table 時, user_name column 是由 first_name 及 last_name 組合而成的, 在結果集中僅會有 user_name 的 column name , 完全不會出現 first_name 及 last_name 的資訊的.. 又如: select case when sex='F' then '女' when sex='M' then '男' else '未知' end as sex from member_table 其中還用了 case.. statement 的狀況下, 就更複雜了, 要取得原始的 column name 就更不是那麼容易的事了, 尤其是 select case when ismember=1 then member_no else personal_id end as uid from member_table 這還是有可能為 member_no, 或是 personal_id 這兩種狀況呢... 愈說愈複雜了..
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
timhuang 兄說的複合的 Field 我當然知道不可能顯示真 TableName 及 FieldName
但對於一般的可 RequestLive 的我想 Delphi 是有資料的,因為他能自動組合成 Update SQL 等等
他總不會將上例變成 Update CUST Set ID = :ID 罷 不過,我想他這樣資料都在內部沒開放出來罷 Mickey 兄
我無意做 SQL Parser, 我只想做一個 簡單的多語言 Data Dictionary,對應 TableName.FieldName 按選定語言自動埴入 DisplayLabel 有沒有好建議呢?
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |