|
コレクションとは、ほかの複数オブジェクトを含むオブジェクトです。
Set キーワードを使用して変数をコレクション オブジェクトに設定します。
Dim result as DtoResult Dim my_session as New DtoSession Dim my_databases as DtoDatabases result = my_session.Connect("myserver", "username", "pw") if not(result=0) Then 'Connect メソッドのエラー処理 end if 'オブジェクトまたはコレクションが値を返すタイプの場合は 'Set を使用する Set my_databases = my_session.Databases
ASP を使用する場合、通常は DtoSession と DtoDictionary という 2 つのオブジェクトのインスタンスのみを直接作成する必要があります。Active Server Pages でオブジェクトのインスタンスを作成する場合、IIS の組み込みオブジェクトである Server オブジェクトの CreateObject 構文を使用します。
メモ
複数の HTTP 呼び出しの間でオブジェクトを存在させたい場合、以下のコード例のように ISS の組み込みオブジェクトである Session オブジェクトを使用してオブジェクトの状態を保持する必要があります。
ただし、データベース、DSN、テーブル、列、インデックスまたはセグメントなどのオブジェクトを新規作成する場合は、この同じ構文を使用します。各オブジェクトのプログラム ID は、前述の例で示す規則に従います。
その他のコレクションについては、前述の Visual Basic の Set 構文を使用することができます。
Visual Basic でコレクション内をループするには、For ループの使用とカウンターの使用という 2 つの方法があります。
For/Next ステートメントを使ってコレクション内をループする Visual Basic の構文を以下に示します。
'Categories コレクションを取得する Dim my_categories as DtoCategories Dim category as DtoCategory Set my_categories = my_session.Categories 'コレクション内をループする For Each category In my_categories settings = category.Settings Next
カウンターを使ってコレクション内をループする Visual Basic の構文を以下に示します。
Dim column as DtoColumn Dim table as DtoTable Set table = dictionary.Tables("Billing") Dim i as long for i=1 to table.Columns.count set column=table.Columns(i) 'ここで操作を実行 next i
Pervasive の設定のカテゴリ一覧を表示する ASP のサンプル コードを以下に示します。
<% Set Session("my_session") = Server.CreateObject("DTO.DtoSession.2") result = Session("my_session").Connect("myserver", "username", "pw") 'Connect メソッドのエラー処理は表示しない Set my_categories = Session("my_session").Categories '次に、HTML の箇条書きリスト(<UL></UL>)内のカテゴリを 'ループして出力する %> <ul> <% For each category in my_categories %> <% '等号(=)は HTML ストリーム内の変数を表示します。%> <% 'これは、VBScript 組み込みの Response.Write() %> <% 'メソッドのショートカットです。%> <li><%=cat.CategoryId> - <%=cat.Name%></li> <% Next %> </ul>
Count プロパティを使用してコレクション内のオブジェクトの数を調べます。
Dim num_items as Integer Dim my_session as New DtoSession Dim result as DtoResult result = my_session.Connect("myserver", "username", "pw") 'Connect メソッドのエラー処理は表示しない Set my_databases = my_session.Databases num_items = my_databases.Count
Count プロパティを使用してコレクション内のオブジェクトの数を調べます。
<% Set Session("my_session") = Server.CreateObject("DTO.DtoSession.2") result = Session("my_session").Connect("myserver", "username", "pw") 'Connect メソッドのエラー処理は表示しない Set my_databases = Session("my_session").Databases num_items = my_databases.Count '出力を HTML ストリームに書き込む Response.Write("<p>Number of databases = " & num_items) %>
Item プロパティを使用して、コレクション内の特定のメンバー オブジェクトを取得します。
コレクション内のメンバー(要素)には序数を使ってアクセスすることができます。コレクションによっては、要素の一意のプロパティ(名前など)を使用して各要素にアクセスすることができます。すべての序数は 1 から始まります。
Item プロパティはコレクション オブジェクトのデフォルト プロパティなので、次の 2 つのステートメントは同一です。
|