ADODataSet是否可取代ADOCommand,ADOTable,ADOQuery... |
尚未結案
|
RoxetteI
一般會員 發表:8 回覆:4 積分:2 註冊:2002-04-07 發送簡訊給我 |
|
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
TADODataSet元件是ADO資料集元件中最接近Recordset物件的元件,大都是使用來執行SQL敘述用的,ADOCommand、ADOTable、ADOQuery、ADOStoredProc各有其特定的功能。
例如我只要設定 ADODataSet.CommandType,就可以轉換不同的功能。是沒錯的。
李維大師書上提到,用TADODataSet的執行效率並不一定會比TADOQuery、TADOTable來得好,如果你對BDE/IDAPI的資料集不熟悉的話,你可以使用TADODataSet做為存取資料的元件,如果你非常習慣BDE/IDAPI的資料集的使用方法,那麼你可以使用TADOQuery或是TADOTable做為存取資料的元件。
個人認為看你喜歡用那一種元件皆可,一樣可以達到目的! Ian
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好﹗ 您的觀念基本上是正确的﹐但其中還是有些部分需要注解一些﹕ ADO存取技術元件幾乎是采用一對一的方式來封裝原生的ADO物件﹐TADODataSet元件了ADO的RecordSet物件﹐并且提供了和Delphi的資料感知元件連結的能力﹐TADODataSet元件的CommandType特性代表了TADODataSet封裝的RecordSet物件會執行什么形態的命令﹐我們可以把TADOTable元件看作是封裝設定CommandType為cmdTable的RecordSet物件﹐把TADOStoredProc元件看作是封裝設定CommandType為cmdStoredProc的RecordSet物件﹐但對于ADOCommand﹑ADOQuery元件來講還是有一些些區別﹒ 可以把TADOQuery元件看作是封裝設定CommandType為cmdText的RecordSet物件﹐但若使用TADODataSet元件﹐其所使用的SQL敘述必須是有回傳資料的語法(如Select等)﹐其不支援無回傳資料的語法(如Insert, Delete, Update等)﹐而TADOQuery元件無此限制﹐可使用有回傳資料和無回傳資料的語法﹒ 而TADOCommand元件也是使用SQL語言的元件﹐但其和TADODataSet元件的不同之處在于其只能使用于資料定義語言(Data Definition Language)和無回傳資料的SQL語法﹐其作用在于TADOCommand元件使用的資源較少﹐如果ADO應用程式中有經常需要執行不回傳資料的SQL敘述時﹐使用TADOCommand元件可得到較好的效率﹒另外需要說明的一點是在TADOCommand元件中使用有回傳資料的SQL語法并不是不可以﹐只是必須再搭配一個ADO的資料集元件才可以接受由TADOCommand回傳的結果資料﹐所以不如直接使用ADOQuery或ADODataSet來得節省資源﹒ 供您參考﹗ =================================
有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗
================================
------
忻晟 |
l630521
資深會員 發表:15 回覆:349 積分:372 註冊:2003-02-17 發送簡訊給我 |
引言: 您好﹗ 您的觀念基本上是正确的﹐但其中還是有些部分需要注解一些﹕ ADO存取技術元件幾乎是采用一對一的方式來封裝原生的ADO物件﹐TADODataSet元件了ADO的RecordSet物件﹐并且提供了和Delphi的資料感知元件連結的能力﹐TADODataSet元件的CommandType特性代表了TADODataSet封裝的RecordSet物件會執行什么形態的命令﹐我們可以把TADOTable元件看作是封裝設定CommandType為cmdTable的RecordSet物件﹐把TADOStoredProc元件看作是封裝設定CommandType為cmdStoredProc的RecordSet物件﹐但對于ADOCommand﹑ADOQuery元件來講還是有一些些區別﹒ 可以把TADOQuery元件看作是封裝設定CommandType為cmdText的RecordSet物件﹐但若使用TADODataSet元件﹐其所使用的SQL敘述必須是有回傳資料的語法(如Select等)﹐其不支援無回傳資料的語法(如Insert, Delete, Update等)﹐而TADOQuery元件無此限制﹐可使用有回傳資料和無回傳資料的語法﹒ 而TADOCommand元件也是使用SQL語言的元件﹐但其和TADODataSet元件的不同之處在于其只能使用于資料定義語言(Data Definition Language)和無回傳資料的SQL語法﹐其作用在于TADOCommand元件使用的資源較少﹐如果ADO應用程式中有經常需要執行不回傳資料的SQL敘述時﹐使用TADOCommand元件可得到較好的效率﹒另外需要說明的一點是在TADOCommand元件中使用有回傳資料的SQL語法并不是不可以﹐只是必須再搭配一個ADO的資料集元件才可以接受由TADOCommand回傳的結果資料﹐所以不如直接使用ADOQuery或ADODataSet來得節省資源﹒ 供您參考﹗ ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================看完cashxin2002前輩精闢的解說,讓我又對ADO的用法多瞭解了一些,謝謝! Ian |
RoxetteI
一般會員 發表:8 回覆:4 積分:2 註冊:2002-04-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |