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 クラスのプロパティは以下の通りです。
プロパティ |
説明 |
|
---|---|---|
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 の場合は、指定した情報がこのフィールドに使用されていないことを示します。各データ型の詳細を次に示します。
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 は使用されていないことを示します。
Size: この日時値のサイズ (バイト単位)。0 は、このフィールドの型のデフォルトサイズであることを示します。
Flags: 以下の定数のうち 0 個以上。 定数が複数の場合は論理和がとられます。
定数 |
説明 |
---|---|
LCDATETIMEF_NO_DATE |
ソースの型は時刻のみです。 |
LCDATETIMEF_NO_TIME |
ソースの型は日付のみです。 |
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 を使用します)。これらのコードは動的に割り当てられるので、スクリプトを実行するたびに取得する必要があります。
Notes は基本的に文書を管理するシステムで、リレーショナルデータベースを管理するシステム (RDBMS) ではありません。このため、Notes はリッチテキストフィールドに保存された添付ファイルを特別な方法で処理します。添付ファイルのデータは、リッチテキストフィールドのデータとは別に保存されます。現在は、添付ファイルの転送は Notes から Notes へは可能ですが、DBA や Oracle などのターゲット RDBMS では、添付ファイル付きのリッチテキストフィールドは正しく保存されません。
ただし、Notes Connector の [Extract File Attachments] オプションを使うと、添付ファイルをディスクのファイルに保存することができます。その後、LotusScript を使用してそのファイルを読み込み、内容を LCFields に保存し、この LCFields を RDBMS のバイナリフィールドに保存します。これを行うには、LotusScript についての専門知識が必要です。