Data Shaping技術--訪問分級 Recordset 中的行

來源:互聯網
上載者:User
訪問 以下範例說明了訪問分級 Recordset 中的行的所需步驟:

authors 和 titleauthors 表中的 Recordset 對象通過 author ID 進行關聯。


外迴圈顯示每個作者的姓名、州/省別和身份。


每行所追加的 Recordset 都從 Fields 集合進行檢索並分配給 rstTitleAuthor。


內迴圈顯示追加的 Recordset 中每行的四個欄位。
(StayInSync 屬性是為了說明而設定為 FALSE 的,以便您可以在每次外迴圈中顯性地看見子集更改。但是,如果在步驟 3 中的賦值被移動到步驟 2 第一行之前,範例將會更有效,所以賦值只執行一次。然後將 StayInSync 屬性設為 TRUE,這樣無論 rst 何時移動到新行,rstTitleAuthor 都將隱性和自動地更改為相應的子集。)

範例

Sub datashape()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim rstTitleAuthor As New ADODB.Recordset

cnn.Provider = "MSDataShape"
cnn.Open "Data Provider=MSDASQL;" & _
"DSN=vfox;uid=sa;pwd=vfox;database=pubs”
‘步驟 1
rst.StayInSync = FALSE
rst.Open "SHAPE {select * from authors}
APPEND ({select * from titleauthor}
RELATE au_id TO au_id) AS chapTitleAuthor",
cnn
‘步驟 2
While Not rst.EOF
Debug.Print rst("au_fname"), rst("au_lname"),
rst("state"), rst("au_id")
‘步驟 3
Set rstTitleAuthor = rst("chapTitleAuthor").Value
‘步驟 4
While Not rstTitleAuthor.EOF
Debug.Print rstTitleAuthor(0), rstTitleAuthor(1),
rstTitleAuthor(2), rstTitleAuthor(3)
rstTitleAuthor.MoveNext
Wend
rst.MoveNext
Wend
End Sub

形狀文法格式


以下是建立 Shape 命令的規範文法。

必需的文法項為角括弧 (“<>”) 界定的文本字串。


可選項由方括弧 (“[ ]”) 界定。


任選其一項用豎線 (“|”) 隔開。


重複的可選項用省略符號 (“...”) 表示。


Alpha 表示字母字串。


Digit 表示數字字串。


Unicode-digit 表示由 unicode 數字組成的字串。
所有其他項目均為文字。

項目 定義
<shape-command>
SHAPE [<table-exp> ][[AS] <alias>]][<shape-action>]

<table-exp>
{<native-sql-statement>} |(<shape-command>) |
TABLE <quoted-name> |
<quoted-name>

<shape-action>
APPEND <aliased-field-list> | COMPUTE <aliased-field-list>
[BY <field-list> ][[AS] <alias>]]

<aliased-field-list>
<aliased-field> [, <aliased-field...]

<aliased-field>
<field-exp> [[AS] <alias>]

<field-exp>
(<relation-exp>) |<calculated-exp>

<relation_exp>
<table-exp> [[AS] <alias>] RELATE <relation-cond-list>

<relation-cond-list>
<relation-cond> [, <relation-cond>...]

<relation-cond>
<field-name> TO <child-ref>

<child-ref>
<field-name> | PARAMETER <param-ref>

<param-ref>
<number>

<field-list>
<field-name [, <field-name>]

<calculated-exp>
SUM(<qualified-field-name>) |AVG(<qualified-field-name>) |
MIN(<qualified-field-name>) |
MAX(<qualified-field-name>) |
COUNT(<alias> | <qualified-field-name>) |
STDEV(<qualified-field-name>) |
ANY(<qualified-field-name>) |
CALC(<expresion>)

<qualified-field-name>
<alias>.[<alias>...]<field-name>

<alias>
<quoted-name>

<field-name>
<quoted-name>

<quoted-name>
"<string>" | '<string>' |
[<string>] |
<name>

<name>
alpha [ alpha | digit | _ | # ...]

<number>
digit [digit...]

<string>
unicode-char [unicode-char...]

<expression>
Visual Basic for Applications 運算式,其運算元是相同行中其他非 CALC 列。



相關文章

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。