このメソッドはコネクション経由で使用可能なデータソース、メタデータオブジェクト、ストアドプロシージャ、およびフィールドについての情報を返します。Connector によっては、すべてのオブジェクト型をサポートしないものもあります。
情報はコネクションの結果セットを使用して返されます。このコネクションに対するアクティブな結果セットがあれば置き換えられます。生成される結果セットの形式は指定したフィールドリストに返され、結果セットの内容を取り出すには LCConnection.Fetch を使用します。例えば、メタデータ情報のカタログを作成した場合、1 回の Fetch で 1 つのメタデータオブジェクトに関する情報が返されます。
一般的には、Catalog を使用する前に Connect メソッドでデータソースに接続します。ただし一部の Connector では、アクティブなコネクションがない状態でもサーバーとデータベースのカタログが作成できます。
必要な情報のコンテキストは、LCConnection のプロパティを使用して指定します。例えば、あるサーバー上のデータベースのカタログを作成するには、最初にコネクションの Server プロパティを設定します。Database プロパティまたは Metadata プロパティは設定する必要はありません。テーブルに、カタログが作成できる各オブジェクトの型に必要なコンテキストを記載します。
LCConnection
count =lcConnection.Catalog(objectType, destFieldlist)
パラメータ |
説明 |
---|---|
objectType |
Long。カタログを作成するメタデータ情報の型。LCOBJECT_XXX という定数でメタデータ型を定義します。以下のリストに、各カタログの種類に必要なコンテキストと、返されるメタデータの形式を示します。名前、オーナー、コメントはすべてのオブジェクトに対して作成されるフィールドですが、データが保証されるのは最初の出力フィールド (Name) だけです。 出力フィールドのデータ型は、特に指定した場合を除いて Text です。フィールドをカタログするときに 4 つ目の要素としてデータ型が追加されます。 |
LCOBJECT_SERVER |
|
コンテキスト: なし |
|
出力フィールド: Server Name、Server Owner、Server Comment |
|
LCOBJECT_DATABASE |
|
コンテキスト: SERVER プロパティ (この Connector でサポートされている場合) |
|
出力フィールド: Database Name、Database Owner、Database Comment |
|
LCOBJECT_METADATA |
|
コンテキスト: 現在のコネクション、ALTERNATE METADATA プロパティ |
|
出力フィールド: Metadata Name、Metadata Owner、Metadata Comment |
|
LCOBJECT_INDEX |
|
コンテキスト: 現在のコネクション |
|
出力フィールド: Index Name、Index Owner、Index Comment |
|
LCOBJECT_PROCEDURE |
|
コンテキスト: 現在のコネクション |
|
出力フィールド: Procedure Name、Procedure Schema、Remarks |
|
LCOBJECT_FIELD |
|
コンテキスト: 現在のコネクション、METADATA プロパティ、ALTERNATE METADATA プロパティ |
|
出力フィールド: Field Name、Field Owner、Field Comment、Field Datatype Constant |
Field Datatype Constant はフィールドのデータ型で、次の値で表されます。 注: ストリームフィールドの最大長などフィールドに関するより詳しい情報を取得するには、メタデータオブジェクトの Select を使用します。
|
|||
---|---|---|---|
値 |
定数 |
タイプ |
|
0.00 |
LCTYPE_INVALID |
Overview |
|
1.00 |
LCTYPE_INT |
Integer |
|
2.00 |
LCTYPE_FLOAT |
Float |
|
3.00 |
LCTYPE_CURRENCY |
Currency |
|
4.00 |
LCTYPE_NUMERIC |
Numeric |
|
5.00 |
LCTYPE_DATETIME |
Datetime |
|
6.00 |
LCTYPE_TEXT |
Text |
|
7.00 |
LCTYPE_BINARY |
Binary |
|
8.00 |
LCTYPE_FIELDLIST |
Fieldlist |
|
9.00 |
LCTYPE_CONNECTION |
Connection |
destFieldlist |
LCFieldlist。出力。カタログ結果セットのメタデータを格納するフィールドリスト。結果セット内のフィールドがこのフィールドリストに追加されます。結果セットのメタデータが必要ない場合は「Nothing」を使用します。 |
値 |
説明 |
---|---|
count |
Long。生成される結果セットに含まれるカタログレコード数。Connector によってレコード数の判断がつかない場合は LCCOUNT_UNKNOWN が返されます。 |
Option Public
Uselsx "*lsxlc"
Sub Initialize
Dim connect As New LCConnection ("db2")
Dim conFldLst As New LCFieldList
' this section assigns the appropriate properties to connect to DB2
connect.Database = "Gold"
connect.Userid = "JDoe"
connect.Password = "xyzzy"
connect.Metadata = "customer"
' connect to DB2
connect.Connect
' now perform the catalog action -- in this case,
' for fields in the 'customer' table.
If (connect.Catalog (LCOBJECT_FIELD, conFldLst) = 0) Then
Print "No tables were found (table does not exist)."
Else
' fetch the results
Dim nameField As LCField, typeField as LCField
Set nameField = conFldLst.GetField(1)
Set typeField = conFldLst.GetField(2)
Print "The list of columns in the '" & _
connect.Metadata & "' table include:"
While (connect.Fetch (conFldLst) > 0)
Print " " & field.text(0)
Wend
End If
End Sub
The list of columns in the 'CUSTOMER' table include:
ACCOUNTMANAGER
CONTACTNAME
COMPANYNAME
COMPANYADDRESS
COMPANYCITY
COMPANYSTATE
COMPANYPHONE
このメソッドは、要求された情報を含む結果セットを作成します。情報の型は ObjectType パラメータで指定します。すべてのオブジェクト型がサポートされるわけではありません。
パラメータ |
説明 |
---|---|
LCOBJECT_SERVER |
DB2® ではサポートされません。 |
LCOBJECT_DATABASE |
データベース名、データベースのオーナー、コメントを返します。 |
LCOBJECT_METADATA |
メタデータ名、メタデータのオーナー、コメントを返します。 |
LCOBJECT_INDEX |
DB2 ではサポートされません。 |
LCOBJECT_FIELD |
フィールド名、フィールドのオーナー、コメント、フィールド型 *、およびネイティブのデータ型を返します。 * このオブジェクト型は、あるプロシージャの入力パラメータと出力パラメータを返します。このオブジェクト型を指定して LCXCatalog を呼び出した場合、プロシージャ名がないとエラーになります。 |
LCOBJECT_PROCEDURE |
プロシージャ名とプロシージャのオーナーを返します。ストアドプロシージャで使用します。 |
LCOBJECT_PARAMETER |
プロシージャの入力パラメータと出力パラメータを返します。このオブジェクト型を指定して LCXCatalog を呼び出した場合、プロシージャ名がないとエラーになります。 |