全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2405
推到 Plurk!
推到 Facebook!

觀念上的問題-DataSet與DataTable

尚未結案
清心綠茶
一般會員


發表:4
回覆:4
積分:1
註冊:2004-11-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-21 12:30:47 IP:61.222.xxx.xxx 未訂閱
1.請問DataSet與DataTable到底有何不同?是不是一個DataSet中可以包含很多的DataTable? 如果是這樣的話 那為什麼DataSet中也會有Fields的屬性呢? Fields屬性不是應該只存在於DataTable中嗎? 2.如果第一個問題成立的話,我要如何把一個DataTable加入某個DataSet中? 3.另外就是我使用ADOQuery去select一個資料表時 它的傳回型態是DataSet 那這個DataSet中有沒有包含DataTable? 請各位先進指點迷津感激不盡 ^_^y
elvis1000
一般會員


發表:6
回覆:50
積分:16
註冊:2004-12-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-21 14:30:50 IP:220.134.xxx.xxx 未訂閱
1. DataSet是個Borland設計好的物件,前面應該加個T,它是用來處理資料表的,依照處理的方式,我覺得應該可以分兩大類:Query(SQL) & Table。TDataSet往下延伸出好多的不同的Query(SQL) & Table,光是現在Delphi 6上的就有一堆,Ex: TTable & TQuery (BDE), TClientDataSet(獨立型的),Ado(還要帶個DLL),.....,這些都是為了要應付各種不同的資料檔所致!也就是你所說的Data Table. 可能是Paradox(db),Access(忘了),DBF,excel, cds,xml,..........,一堆,我都懶得理了! 2. TDataSet是物件,要創建Table當然有一定的方法了!不過還是要看他的後代物件而定,例如Query一定是用SQL語言,Table類的一定是用指令。連結Table則大部分都是和TDadaSource一起直接設定即可。 3. TAdoQuery也是個DataSet,就像TBitmap一樣,都只是用來處理特定類型的檔案,只是檔案格式不同罷了。 ----------------------- God bless you! I am Dark_Angel.
------
-----------------------
God bless you!
I am Dark_Angel.
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-21 14:52:18 IP:211.21.xxx.xxx 未訂閱
一,TDataset 是一個虛擬的物件,由這個物件衍生了所有相關的存取資料的物件包括:TAdoTable,TTable(就是您說的dataTable),TAdoQuery... 這是物件的階層觀念...所以您的第二個問題就不存在了,而真正可以跟TTable產生物件一對多關係的物件應該是TDataModule。 三,由上述的觀念,為什使用ADOQuery去select一個資料表時,它的傳回型態是DataSet呢,簡單的說,TDataset可以代表所有資料集的物件,如果想進一步追究,您可能要注意一下,TAdoQuery 是繼承自TCustomADODataSet,這也是一個虛擬物件,它無法判別到底是要傳回是要TAdoQuery或是TAdoTable,所以就傳回TDataSet,這是根據物件的觀念,子類別也可以是一個父類別,同時這也是物件導向中的一項很重要的特性。 以上這些物件基礎觀念,希望對您有所幫助。
kenspc
一般會員


發表:1
回覆:20
積分:4
註冊:2004-12-09

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-21 15:23:07 IP:61.6.xxx.xxx 未訂閱
> 1.請問DataSet與DataTable到底有何不同?是不是一個DataSet中可以包含很多的DataTable? >如果是這樣的話 >那為什麼DataSet中也會有Fields的屬性呢? >Fields屬性不是應該只存在於DataTable中嗎? 不知你所說的DataTable指的是不是TTable? 如果是, TDataSet是TTable的父物件(parent object), 也就是說TTable就會繼承TDataSet的屬性和方法. 2.如果第一個問題成立的話,我要如何把一個DataTable加入某個DataSet中? 因為TTable繼承TDataSet, 所TTable本身就是個TDataSet. 3.另外就是我使用ADOQuery去select一個資料表時 它的傳回型態是DataSet 那這個DataSet中有沒有包含DataTable? 其實當你在使用TTable的方法或屬性都是來至于TDataSet這個父物件
清心綠茶
一般會員


發表:4
回覆:4
積分:1
註冊:2004-11-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-22 18:53:22 IP:211.74.xxx.xxx 未訂閱
引言: > 1.請問DataSet與DataTable到底有何不同?是不是一個DataSet中可以包含很多的DataTable? >如果是這樣的話 >那為什麼DataSet中也會有Fields的屬性呢? >Fields屬性不是應該只存在於DataTable中嗎? 不知你所說的DataTable指的是不是TTable? 如果是, TDataSet是TTable的父物件(parent object), 也就是說TTable就會繼承TDataSet的屬性和方法. 2.如果第一個問題成立的話,我要如何把一個DataTable加入某個DataSet中? 因為TTable繼承TDataSet, 所TTable本身就是個TDataSet. 3.另外就是我使用ADOQuery去select一個資料表時 它的傳回型態是DataSet 那這個DataSet中有沒有包含DataTable? 其實當你在使用TTable的方法或屬性都是來至于TDataSet這個父物件
大大真是太謝謝你了 雖然前面兩個大大講解的很多 不過老實說還是你的回應讓我看的最懂 也解決了我的困惑 真是謝謝你嚕^_^7
系統時間:2024-05-18 6:50:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!