Data Shaping技術--資料構形

來源:互聯網
上載者:User
資料 ADO 使您能夠回答其答案可表示為 Recordset 的提問。例如,假設您要公司客戶的列表,而您有包含名為 Customers 的表的資料庫。對錶發出查詢命令,則 ADO 將返回 Recordset,在 Recordset 中每個行表示一個客戶,並且每個行的列擁有能夠包含客戶的名稱、地址、客戶 ID 等內容的資料類型。

“資料構形”使您能夠回答其答案可由成形的 Recordset 表示的提問。資料構形定義成形 Recordset 的列、由列表示條目之間的關係和資料充填到 Recordset 的方式。

成形 Recordset 的列可以包含來自資料提供者(如 SQL Server)的資料、對另一個 Recordset 的引用、對 Recordset 一個行進行計算得到的值、對整個 Recordset 的列進行操作所得到的值,或者可以是新虛構的空列。

在檢索包含對另一個 Recordset 的引用的列的值時,ADO 將自動返回由參考資料表示的實際的 Recordset。包含另一個 Recordset 的 Recordset 稱為“分級 Recordset”或“分級遊標”。

例如,假定您要得到由公司每個客戶發出的所有定單的列表。可對包含名為 Customers 和 Orders 的資料庫表發出資料構形命令。如同上例一樣,ADO 將返回客戶記錄 Recordset。但是,每行將同時有附加的列,該列引用包含所有該客戶定單的 Recordset。

改進該形狀即可獲得按州排列的銷售總計的列表。在 Customers 表中的地址列包含每個客戶的州,而 Orders 表的數量列則包含每個定單的數量。發出不同的資料構形命令,則 ADO 將返回 Recordset,該 Recordset 包含每個州一個行(在此,每個行包含標識州的列)、該州所有定單的銷售量總計和對開列該州的所有客戶的 Recordset 的引用。訪問該客戶 Recordset 將會發現與前面的範例一樣,每個客戶行均含有對包含所有該客戶定單的 Recordset 的引用。

Shape 命令文法使您能夠通過編程建立成形的 Recordset。然後就可以通過編程或適當的可視化控制項,訪問 Recordset 的組件。

資料構形縱覽


ADO 2.0 推出了資料構形功能、分級記錄集和 Shape 命令文法。

ADO 2.1 通過插入 COMPUTE 命令推出重構形、孫子合計和參數化命令。

資料構形

資料構形使您能夠定義成形 Recordset 的列、由列表示的條目之間的關係和資料充填到 Recordset 的方式。

成形 Recordset 的列可以包含資料、對另一個 Recordset 的引用、對 Recordset 一個行進行計算得到的值、對整個 Recordset 的列進行操作所得到的值,或者可以是新虛構的空列。

在檢索包含對另一個 Recordset 的引用的列的值時,ADO 將自動返回由參考資料表示的實際的 Recordset。包含另一個 Recordset 的 Recordset 被稱為“分級 Recordset”。分級 Recordsets 展示的是父-子關係,其中“父”是包含的 Recordset,而“子”是被包含的 Recordset。對 Recordset 的引用實際是對子的子集合(即“子集”)的引用。單個父可以包含多個子 Recordset。

ADO 2.0 同時推出了新的 Shape 命令文法,能夠通過編程建立成形的 Recordset 對象。Shape 命令可以象其他任何 ADO 命令文本一樣發出。

使用 Shape 命令文法,可通過兩種途徑建立分級的 Recordset 對象。其一是將子 Recordset 追加到父 Recordset,一般,父和子至少必需有一個列:在父的行中列的值與子的所有行中列的值相同。

其二則是從子 Recordset 產生父 Recordset。在引用子 Recordset 的父中,必須有子集列。建立其他父列的途徑是:對子列的合計運算,運算 Recordset 行的運算式,使用 BY 關鍵字指定分組的列,或追加新的空列。

可將分級 Recordset 對象嵌套到所需的任何深度(即建立子 Recordset 對象的子 Recordset 對象,如此繼續)。

通過程式或相應的可視控制項,可以訪問成形的 Recordset 的 Recordset 組件。

Microsoft 提供了能夠產生 Shape 命令的視覺化檢視(請參閱 Visual Basic 主題,“資料環境設計者”)以及另一個能夠顯示分級遊標的視覺化檢視(請參閱 Visual Basic 主題,“使用 Microsoft Hierarchical Flexgrid Control”)。

重構形

由 Shape 命令的子句建立的 Recordset 可以被賦值為“別名”(一般使用 AS 關鍵字)。在 ADO 2.1 中,成形 Recordset 的別名可以在完全不同的命令中引用。就是說,可以發出新的 Shape 命令來更改(即重構形)以前構形的 Recordset。為了支援該功能,ADO 提供了新的 Recordset 對象 Name 屬性。

所受限制為不可以將列追加到現有的 Recordset 中,或在任何插入 COMPUTE 的子句中對參數化的 Recordset 或 Recordset 對象進行重構形,或對除正在被構形的 Recordset 以外的任何 Recordset 執行合計操作。

孫子合計

用 Shape 命令的子句建立的子集列可以得到“子集-別名名稱”(一般使用 AS 關鍵字)。可以使用用以標識包含了列的子的完整名稱,在子集中標識成形 Recordset 的任何列。例如,如果父子集 chap1 包含擁有數量列 amt 的子子集 chap2,那麼完整名稱將是 chap1.chap2.amt。然後,完整名稱可以用作參數在合計函數 (SUM, AVG, MAX, MIN, COUNT, STDEV, or ANY) 中使用。

使用插入 COMPUTE 命令的參數化命令

典型的參數化形狀 APPEND 命令含有通過查詢命令建立父 Recordset 的子句,以及通過參數化查詢命令(即包含參數預留位置:問號“?”的命令)建立子 Recordset 的另一個子句。最終得到的成形 Recordset 有兩層,父在上層而子佔據下層。

建立子 Recordset 的子句現在可以是任意數量的嵌套形狀 COMPUTE 命令,在最深的嵌套命令中包含了參數化查詢。所得到的成形 Recordset 有多層,父佔據最上層,子佔據最下層,而由形狀 COMPUTE 命令產生的任意數量 Recordsets 則佔據插入的層。

該特性典型的用法是調用合計函數和形狀 COMPUTE 命令的分組功能,建立帶有有關子 Recordset 的分析資訊的插入 Recordset 對象。總之,因為這是參數化 Shape 命令,每當父的子集列被訪問時,就可檢索新的子 Recordset。因為插入層來源於子,它們也將被重新計算



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。