LCConnection の Catalog メソッド

このメソッドはコネクション経由で使用可能なデータソース、メタデータオブジェクト、ストアドプロシージャ、およびフィールドについての情報を返します。Connector によっては、すべてのオブジェクト型をサポートしないものもあります。

情報はコネクションの結果セットを使用して返されます。このコネクションに対するアクティブな結果セットがあれば置き換えられます。生成される結果セットの形式は指定したフィールドリストに返され、結果セットの内容を取り出すには LCConnection.Fetch を使用します。例えば、メタデータ情報のカタログを作成した場合、1 回の Fetch で 1 つのメタデータオブジェクトに関する情報が返されます。

一般的には、Catalog を使用する前に Connect メソッドでデータソースに接続します。ただし一部の Connector では、アクティブなコネクションがない状態でもサーバーとデータベースのカタログが作成できます。

必要な情報のコンテキストは、LCConnection のプロパティを使用して指定します。例えば、あるサーバー上のデータベースのカタログを作成するには、最初にコネクションの Server プロパティを設定します。Database プロパティまたは Metadata プロパティは設定する必要はありません。テーブルに、カタログが作成できる各オブジェクトの型に必要なコンテキストを記載します。

注: このメソッドでは「owner.tablename」という形式でメタデータを使用しないでください。代わりに、connection.Owner = "owner" と connection.Metadata = "tablename" を割り当てます。

定義位置

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

Lotus® Connector for DB2 で使用する LCConnection の Catalog メソッド

このメソッドは、要求された情報を含む結果セットを作成します。情報の型は ObjectType パラメータで指定します。すべてのオブジェクト型がサポートされるわけではありません。

パラメータ

説明

LCOBJECT_SERVER

DB2® ではサポートされません。

LCOBJECT_DATABASE

データベース名、データベースのオーナー、コメントを返します。

LCOBJECT_METADATA

メタデータ名、メタデータのオーナー、コメントを返します。

LCOBJECT_INDEX

DB2 ではサポートされません。

LCOBJECT_FIELD

フィールド名、フィールドのオーナー、コメント、フィールド型 *、およびネイティブのデータ型を返します。

* このオブジェクト型は、あるプロシージャの入力パラメータと出力パラメータを返します。このオブジェクト型を指定して LCXCatalog を呼び出した場合、プロシージャ名がないとエラーになります。

LCOBJECT_PROCEDURE

プロシージャ名とプロシージャのオーナーを返します。ストアドプロシージャで使用します。

LCOBJECT_PARAMETER

プロシージャの入力パラメータと出力パラメータを返します。このオブジェクト型を指定して LCXCatalog を呼び出した場合、プロシージャ名がないとエラーになります。