GETMETADATA |
説明 ColdFusion server に配置されるオブジェクトに割り当てられたメタデータ (コンポーネントのメソッド、プロパティ、パラメータなど) を取得します。
戻り値 構造化されたメタデータ情報 : ColdFusion コンポーネント (CFC) およびユーザー定義関数の場合は、構造体。クエリーオブジェクトの場合は、構造体の配列。
カテゴリ システム関数
関数のシンタックス
    GetMetaData(object)
関連項目 CreateObject、QueryAddColumn、QueryNew
ヒストリ ColdFusion MX 7: クエリーオブジェクトのメタデータを取得できるようになりました。 ColdFusion MX: この関数が追加されました。
パラメータ
使用方法 この関数は、アプリケーションデータに関する情報を提供し、オブジェクトの構造体およびその使用方法をアプリケーションでダイナミックに確定できるようにします。この関数は、CFC およびクエリーオブジェクトに役立ちます。CFC のメタデータは、コンポーネントに関する情報、その関数、引数、およびプロパティに関する情報などです。getMetaData 関数は、CFC の一部ではないユーザー定義関数のメタデータも返します。 次の表に、この関数によって返されるデータを、サポートされるオブジェクトタイプ別に示します。
コンポーネント |
次のフィールドを含む構造体です。
displayname |
存在する場合には、cfcomponent タグの displayname 属性の値です。
extends |
コンポーネントの先祖コンポーネントのメタデータです。他のコンポーネ ントを明示的に拡張しないコンポーネントは、WEB- INF.cftags.component を拡張します。
functions |
コンポーネントの関数に関するメタデータ構造体の配列です。
hint |
存在する場合には、cfcomponent タグの displayname 属性の値です。
name |
Web ルートディレクトリ、ColdFusion Administrator の [カスタムタグ のパス] ページに指定されているディレクトリなどのコンポーネント検索 ルートからのピリオド区切りのパスを含む、コンポーネント名です。
output |
存在する場合には、cfcomponent タグの output 属性の値です。
path |
コンポーネントの絶対パスです。
properties |
存在する場合には、コンポーネントの cfproperty タグで指定されるメタ データを含む構造体の配列です。
type |
常にコンポーネントです。
userMetadata |
cfcomponent タグ内のユーザー指定の属性です。
関数 |
次のフィールドを含む構造体です。
access |
存在する場合には、cffunction タグの access 属性の値です。
displayname |
存在する場合には、cffunction タグの displayname 属性の値です。
hint |
存在する場合には、cffunction タグの hint 属性の値です。
name |
関数名です。
output |
存在する場合には、cffunction タグの output 属性の値です。
parameters |
関数のパラメータに関するメタデータを含む構造体の配列です。
returntype |
存在する場合には、cffunction タグの returntype 属性の値です。
roles |
存在する場合には、cffunction タグの output 属性の値です。
userMetadata |
cffunction タグ内のユーザー指定の属性です。
パラメータまたはプロパティ |
次のフィールドを含む構造体です。
default |
存在する場合には、cfargument または cfproperty タグの default 属性の 値です。
displayname |
存在する場合には、cfargument または cfproperty タグの displayname 属 性の値です。
hint |
存在する場合には、cfargument または cfproperty タグの hint 属性の値 です。
name |
関数のパラメータまたは CFC プロパティ名です。
required |
存在する場合には、cfargument または cfproperty タグの required 属性 の値です。
type |
存在する場合には、cfargument または cfproperty タグの type 属性の値 です。
userMetadata |
argument タグ内のユーザー指定の属性です。
クエリー |
次の要素を含む構造体の配列です。
IsCaseSensitive |
文字データの大文字と小文字を正しく指定する必要があるかどうかを指定 するブール値です。
Name |
列名です。
TypeName |
SQL データタイプです。タイプを指定しないで QueryNew でクエリーオ ブジェクトが作成される場合は、省略されます。
メモ: | This スコープを使用して、CFC 内のコンポーネントのメタデータにアクセスします。This スコープは、実行時に、コンポーネント本体および CFC メソッドで使用できます。これを使用して、コンポーネントが有効な間に存在する変数の読み込みと書き込みを行います。
詳細については、『ColdFusion MX 開発ガイド』の第10章の「ColdFusion コンポーネントの作成と使用」 の「インストロスペクションによるコンポーネント情報の取得」を参照してください。
例 次の例では、cfdump タグを使用して、ColdFusion コンポーネントブラウザで使用するユーティリティ CFC のメタデータを表示します。cfdocexamples データベースの Employees テーブル内のフィールドの名前とデータタイプも表示します。
    <!--- Component Explorer ユーティリティ CFC のインスタンスを作成して
          そのメタデータを取得 --->
    <cfscript>
    componentutils = createObject("component", "cfide.componentutils.utils");
    utilmetadata = getMetaData(componentutils);
    </cfscript>

    <h4>CFC コンポーネントユーティリティのメタデータ</h4>
    <cfdump var="#utilmetadata#">

    <!--- GetMetadata を使用して、cfdocexamples データベースの Employees テーブル内のフィールドの名前と
    データタイプを取得 --->
    <cfquery name="getemployees" datasource="cfdocexamples">
    SELECT      *
    FROM         Employees
    </cfquery>
    <cfset employeemeta=getMetaData(getemployees)>

    <h4>Employees テーブル内の列</h4>
    <cfloop index="i" from="1" to="#arrayLen(employeemeta)#">
       <cfoutput>
          #employeemeta[i].name# #employeemeta[i].TypeName#
    #employeemeta[i].isCaseSensitive#<br>
       </cfoutput>
    </cfloop>

OBJECT |
ColdFusion コンポーネント、ユーザー定義関数、またはクエリーオブジェクトです。 CFC 内で、パラメータを使用して This スコープを指定することもできます。