LCField クラスのメソッドおよびプロパティの要約

LCField クラスのメソッドの要約を以下に示します。

割り当て

次のメソッドにより、Field インスタンスの作成および解放を行います。

メソッド

説明

New LCField

(コンストラクタ) 新しい Field オブジェクトインスタンスを割り当てます。

LCField.Copy

新しい Field オブジェクトインスタンスを、別のフィールドのコピーとして作成します。フィールドのデータもコピーされます。

Delete LCField

(デストラクタ) コンストラクタまたは LCField.Copy によって割り振られたオブジェクトインスタンスを解放します。フィールドリストの一部として作成されたフィールドは解放されません。

フィールドのプロパティ

次のメソッドにより、フィールドのプロパティの取り出しや、変更可能なフィールドプロパティの値の設定を行います。

メソッド

説明

LCField.GetVirtualCode

フィールドにこの仮想コードが設定されているかどうかをチェックします。

LCField.ListVirtualCode

フィールドの仮想コードをすべて取り出します。

LCField.SetVirtualCode

フィールドの仮想コードを設定します。

フィールドの形式

次のメソッドにより、フィールドの形式情報を取り出します。フィールドの形式を設定すると、そのフィールドに設定されているデータ値はすべてクリアされます。

メソッド

説明

LCField.GetFormatNumber

数値フィールドの現在の形式設定を取り出します。

LCField.SetFormatNumber

数値フィールドの現在の形式設定の値を指定します。

LCField.GetFormatDatetime

日時フィールドの現在の形式設定を取り出します。

LCField.SetFormatDatetime

日時フィールドの現在の形式設定の値を指定します。

LCField.GetFormatStream

ストリームフィールドの現在の形式設定を取り出します。

LCField.SetFormatStream

ストリームフィールドの現在の形式設定の値を指定します。

フィールドデータ

次のメソッドにより、フィールドデータおよび NULL インジケータへのアクセスと変更を行います。

メソッド

説明

LCField.IsNull

特定のフィールドデータ値が NULL であるかどうかを照会します。

LCField.SetNull

特定のフィールドデータ値に NULL インジケータを割り当てます。

LCField.Get<Type>

特定のフィールドデータ値を特定のデータ型として取り出し、必要に応じてデータを変換します。

LCField.Set<Type>

特定のフィールドデータの値を特定のデータ型から割り当て、必要に応じてデータを変換します。

その他

次のメソッドにより、比較や変換を行います。

メソッド

説明

LCField.Compare

2 つのフィールド間でデータ値を比較します。

LCField.Convert

2 つのフィールド間でデータ値を変換します。

LCField のプロパティ

LCField クラスのプロパティは以下の通りです。

プロパティ

説明

Count

Long。1 以上。ここで指定した数のデータ値のデータ領域および NULL インジケータが割り振られます。フィールドリスト内のフィールドの場合は、値のカウントはフィールドリストのレコード数 (フィールドリストの説明を参照) に基づいて自動的に設定されます。値は作成時に設定され、読み込み専用です。

Datatype

Long。Lotus® Connector のデータ型のいずれかです。値は作成時に設定され、読み込み専用です。

Flags

Long。以下のフィールドフラグのうち 0 個以上の論理和です。

 

LCFIELDF_NO_NULL -- フィールドに NULL は指定できません。

 

LCFIELDF_TRUNC_PREC -- 精度の切り捨てが可能です。

 

LCFIELDF_TRUNC_DATA -- データの切り捨てが可能です。

 

LCFIELDF_NO_FETCH -- このフィールドはフェッチされません。

 

LCFIELDF_NO_INSERT -- このフィールドは挿入されません。

 

LCFIELDF_NO_UPDATE -- このフィールドは更新されません。

 

LCFIELDF_NO_REMOVE -- このフィールドは削除されません。

 

LCFIELDF_NO_CREATE -- このフィールドは作成されません。

 

LCFIELDF_NO_DROP -- このフィールドはドロップされません。

 

LCFIELDF_KEY -- このフィールドはキーによるオペレーションのキーです。

 

LCFIELDF_KEY_GT -- キーの条件は「より大または等しい」です。「より大」を指定する場合は、LCFIELDF_KEY_GT+ LCFIELDF_KEY_NE を使用してください。

 

LCFIELDF_KEY_LT -- キーの条件は「より小または等しい」です。「より小」を指定する場合は、LCFIELDF_KEY_LT+ LCFIELDF_KEY_NE を使用してください。

 

LCFIELDF_KEY_NE -- キーの条件は「等しくない」です。

LCFIELDF_KEY_LIKE

キーの条件は「LIKE」です (ネイティブのパターンマッチ)。

IsNull

Boolean 型。True または False。

Text

文字列の配列による表現。

注: メソッドを呼び出すときに LCField の値に付けるインデックスの値は 1 から Count までですが、Text プロパティが返す配列のインデックスは 0 から Count-1 までです。これは、LotusScript® のデフォルトの配列表現と一致させるためです。フィールドに複数の値が格納されていない場合も、値は配列として返されます。このプロパティは読み取りおよび書き込みが可能であるため、Notes の文書フィールドと同じようにプロパティの値を指定することによってフィールドの値を設定できます。ただし、プロパティ全体の値を指定する必要があります。つまり、field.Text(0) = var ではなく fld.Text = var となります。

LotusScript のデータ型の配列。格納される値は、次に示すとおり、フィールドのデータ型によって異なります。Text メソッドでは、配列のインデックスは 0 から開始します。フィールドに複数の値が格納されていない場合も、値は配列として返されます。Text と同様に、Value プロパティの値を設定することにより、すべてのフィールド要素の値を設定できます。フィールド要素の値を 1 つずつ設定するには、この章の Set<type> メソッドの説明を参照してください。

 

フィールドの種類

戻り値の型

LCTYPE_CURRENCY

通貨

LCTYPE_DATETIME

Variant (日付/時刻)

LCTYPE_INT

Long 型

LCTYPE_FLOAT

Double 型

LCTYPE_NUMERIC

Double 型

LCTYPE_TEXT

String

LCTYPE_BINARY

String

フィールドの形式

フィールドの形式は、型の一般クラス、つまり数値 (int、float、currency、numeric)、日時、またはストリーム (text および binary) に固有です。形式の値が 0 の場合は、指定した情報がこのフィールドに使用されていないことを示します。各データ型の詳細を次に示します。

注: 数値および日時の形式は実際のデータには影響せず、データ作成時にのみ使用されます。ストリームの形式は、実際のデータに影響します。

数値 (INT、FLOAT、CURRENCY、NUMERIC)

Flags: 以下の定数のうち 0 個以上。定数が複数の場合は論理和がとられます。

定数

説明

LCNUMBERF_UNSIGNED

ソースの型は符号なしです。

LCNUMBERF_NUMERIC

ソースの型は NUMERIC です (LCTYPE_NUMERIC では不要)。

LCNUMBERF_DECIMAL

ソースの型は DECIMAL です。

LCNUMBERF_PACKED

ソースの numeric または decimal データはパックされています。

LCNUMBERF_BIT

ソースの型はビットです。

Size: この数値のサイズ (バイト単位)。0 は、このフィールドの型のデフォルトサイズであることを示します。

Precision: この値の精度を示す桁数。0 は使用されていないことを示します。

Scale: 数値のスケール。スケールの値が実際に 0 の場合は、定数 LCSCALE_ZERO を使用します。0 は使用されていないことを示します。

日時 (DATETIME)

Size: この日時値のサイズ (バイト単位)。0 は、このフィールドの型のデフォルトサイズであることを示します。

Flags: 以下の定数のうち 0 個以上。 定数が複数の場合は論理和がとられます。

定数

説明

LCDATETIMEF_NO_DATE

ソースの型は時刻のみです。

LCDATETIMEF_NO_TIME

ソースの型は日付のみです。

ストリーム (TEXT、BINARY)

Flags: ストリームフラグ LCSTREAMF_xxx のうち 0 個以上。フラグが複数の場合は論理和がとられます。LCStream クラスの説明を参照してください。

MaxLength: このストリーム値の最大長 (バイト単位)。0 は、最大長が指定されていないことを示します。LCStream クラスの説明を参照してください。

StreamFormat: このストリーム値のデフォルトのストリーム形式。0 は、デフォルトのストリーム形式が指定されていないことを示します。LCSTREAMFMT_xxx 定数のいずれかを使用します。

フィールドの仮想コード -- 高度な使用法

仮想コードを使用すると、特定のフィールドの解釈方法を、仮想フィールドをサポートする Connector に応じて変えることができます。例えば、ある Connector がサポートする「RecordId」という仮想フィールドに、この Connector 用の特別な内部レコードインジケータを保持するとします。この Connector は、このフィールドを通常のデータとは異なる方法で解釈しますが、他の Connector はこのフィールドを標準のデータフィールドと見なします。仮想コードは特別な処理があることを示すものですが、Connector 固有の処理の種類はフィールド名によって決まります。

この機能を実現するには、フィールドの仮想コードを Connector コードまたは Connection コードのいずれかに一致するように設定します。Connector コードは、セッション内の特定の Connector へのすべてのコネクションに共通するコードです。Connector コードを取得するには、LCConnection.GetProperty を使用してプロパティ LCTOKEN_CONNECTOR_CODE を取り出すか、LCSession.ListConnector または LCSession.LookupConnector により返されるコードを使用します。Connector コードを仮想コードとして使用すると、フィールドはその Connector に対するすべてのコネクションで仮想フィールドとして解釈されるようになります。Connection コードは、個々のコネクションごとに異なるコードです。Connect コードを取得するには、LCConnection.GetProperty を使用してプロパティ LCTOKEN_CONNECTION_CODE を取り出します。Connection コードを仮想コードとして使用すると、フィールドは特定のコネクションのみで仮想フィールドとして解釈されるようになります。Connector コードを取得するには、Connection コードを取得して下位 2 バイトを 0 に設定するという方法もあります (または LCMASK_CONNECTOR_CODE を使用します)。これらのコードは動的に割り当てられるので、スクリプトを実行するたびに取得する必要があります。

RTF フィールドに格納された添付ファイルを処理する

Notes は基本的に文書を管理するシステムで、リレーショナルデータベースを管理するシステム (RDBMS) ではありません。このため、Notes はリッチテキストフィールドに保存された添付ファイルを特別な方法で処理します。添付ファイルのデータは、リッチテキストフィールドのデータとは別に保存されます。現在は、添付ファイルの転送は Notes から Notes へは可能ですが、DBA や Oracle などのターゲット RDBMS では、添付ファイル付きのリッチテキストフィールドは正しく保存されません。

ただし、Notes Connector の [Extract File Attachments] オプションを使うと、添付ファイルをディスクのファイルに保存することができます。その後、LotusScript を使用してそのファイルを読み込み、内容を LCFields に保存し、この LCFields を RDBMS のバイナリフィールドに保存します。これを行うには、LotusScript についての専門知識が必要です。