一定要把Fields加入Query, Origin才會有值嗎? |
答題得分者是:ccchen
|
binbinalia
一般會員 發表:14 回覆:23 積分:7 註冊:2003-11-05 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi: binbinalia,關於這問題,你可以先參考以下這一篇討論
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=44010 再者,如果你的 DataSet 有 CalCulated Field 時該如何? 因此如果不考慮 Table Name 而只使用 TField 的 FiledName 來轉換為中文,是否會簡單點
--------------------------------
小弟才疏學淺,若有謬誤請不吝指教
--------------------------------
------
Fishman |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
有一個文件中沒提到的class可以幫忙TQueryDescription可以找到origin
以下給你參考, 在run Time 傳入一query若原來無origin則將各欄位填入origin
procedure fixorigin(qry: TQuery); var qdes: TQueryDescription; field:TField; begin if qry.Active then if qry.Fields[0].origin = '' then begin qdes := TQueryDescription.Create(nil); //create輔助之TQueryDescription try try qdes.Query := Qry; //指向原query qdes.Open; qdes.First; while not qdes.Eof do begin field := qry.findfield(qdes['FIELDNAME']); if field <> nil then field.origin := qdes['TABLENAME'] '.' qdes['FIELDNAME']; qdes.Next; end; except end; finally qdes.Free; end; end; end; |
binbinalia
一般會員 發表:14 回覆:23 積分:7 註冊:2003-11-05 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
引言: Fishman大大: 有想過規範在SELECT時ASSIGN欄名給它,但因UNIT是多人共用有人嫌麻煩,所以才想有無直接解析出SQL裡TABLE NAME的方法,查不到的再讓他們自己填. ccchen大大: 我用的是DELPHI 5.0,它沒有TQueryDescription這個元件耶!有其他類似元件嗎?TQueryDescription不在元件盤上, 我也不確定是否在Delphi6才新增之Class 你可以uses DrTable再試試 (此unit不會自動uses) |
binbinalia
一般會員 發表:14 回覆:23 積分:7 註冊:2003-11-05 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |