LCConnection の Create メソッド

このメソッドはメタデータオブジェクトを作成します。Connector ごとにサポートされるオブジェクト型が決まっています。Connector でどのオブジェクト型がサポートされるかについては、該当する Connector のドキュメントを参照してください。

Lotus® Connector for DB2® の場合、DB2 内にオブジェクトが作成されます。DB2 でサポートされるオブジェクト型は LCOBJECT_METADATA と LCOBJECT_INDEX のみです。

定義位置

LCConnection

構文

Call lcConnection.Create(objectType, srcFieldlist)

パラメータ

パラメータ

説明

objectType

Long。オブジェクトのタイプ。有効な型とその動作は以下のとおりです。Connector でどのオブジェクト型がサポートされるかについては、該当する Connector のドキュメントを参照してください。

 

LCOBJECT_SERVER
SERVER プロパティから名前を取得して、サーバーオブジェクトを作成します。他の情報は Connector 固有のプロパティから取得可能です。DB2 ではサポートされません。

 

LCOBJECT_DATABASE
DATABASE プロパティから名前を、またオプションで SERVER プロパティからサーバー名を取得して、データベースオブジェクトを作成します。他の情報は Connector 固有のプロパティから取得可能です。DB2 ではサポートされません。

 

LCOBJECT_METADATA
METADATA プロパティから名前を取得して、メタデータオブジェクトを作成します。作成されるメタデータのフィールドには、フィールドリストのフィールドと同じ順番、データ型、および名前が使用されます。LCFIELDF_NO_CREATE フラグが設定されているフィールドはスキップされます。例えば、これにより DB2 にテーブルが作成されます。

 

LCOBJECT_INDEX
索引オブジェクトを作成します。索引付けするメタデータは METADATA プロパティから、作成する索引名は INDEX プロパティから取得します。作成される索引のキーフィールドは、フィールドリスト内の LCFIELD_KEY フラグが設定されているフィールドです。例えば、これにより DB2 に索引が作成されます。

 

LCOBJECT_FIELD
フィールドオブジェクトを作成します。追加するメタデータは METADATA プロパティから取得します。メタデータに追加されるフィールドには、フィールドリストのフィールドと同じ順番、データ型、および名前が使用されます。LCFIELDF_NO_CREATE フラグが設定されているフィールドはスキップされます。DB2 ではサポートされません。

srcFieldlist

LCFieldlist。オブジェクトを作成する際に使用するメタデータまたはキーフィールドが含まれるフィールドリスト。オブジェクト型が SERVER および DATABASE の場合にはこのパラメータは無視されます。

Option Public
Option Explicit
Uselsx "*lsxlc" 
Sub Initialize
  Dim src As New LCConnection ("db2") 
  Dim fldLstRecord As New LCFieldList
  Dim fld As LCField

  ' build the table definition
  ' note the use of the 'MaxLength' parameter
  ' this is used to more closely control the datatype creation
  ' within the connection -- in this case DB2
  ' in DB2, a text stream with a MaxLength of 64 will be created
  ' as VARCHAR(64). if the flag LCSTREAMF_FIXED was used
  ' the column would be CHAR(64). The field flag LCFIELDF_NO_NULL
  ' would add NOT NULL to the column definition

  Call FldLstRecord.Append ("ACCOUNTMANAGER", LCTYPE_INT)
  Set fld = FldLstRecord.Append ("CONTACTNAME", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 64, LCSTREAMFMT_LMBCS)
  Set fld = FldLstRecord.Append ("COMPANYNAME", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 64, LCSTREAMFMT_LMBCS)
  Set fld = FldLstRecord.Append ("COMPANYADDRESS", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 64, LCSTREAMFMT_LMBCS)
  Set fld = FldLstRecord.Append ("COMPANYCITY", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 64, LCSTREAMFMT_LMBCS)
  Set fld = FldLstRecord.Append ("COMPANYSTATE", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 64, LCSTREAMFMT_LMBCS)
  Set fld = FldLstRecord.Append ("COMPANYPHONE", LCTYPE_TEXT)
  Call fld.SetFormatStream (0, 32, LCSTREAMFMT_LMBCS)

  ' set properties to connect to both data sources
  src.Database = "Gold"
  src.Userid = "JDoe"
  src.Password = "xyzzy"
  src.Metadata = "customer"

  src.Connect
 ' create it based on the metadata property already set
  On Error LCFAIL_DUPLICATE Goto tableexists
  Call src.Create (LCOBJECT_METADATA, fldLstRecord)
  Print "The '" & src.Metadata & "' table was created."
  End

tableexists:
  Print "The '" & src.Metadata & "' table exists."
  End
End Sub

出力例

The 'customer' table was created.