13.16 IntervalYMクラス

IntervalYMは、SQLの年月時間隔標準データ型をサポートしています。

先行フィールド精度は、入力時の桁数によって決まります。

表13-21 IntervalYMクラスのフィールド

フィールド 説明

year

int

年のコンポーネントを指定します。有効な値は、-10の9乗〜10の9乗です。

month

int

月のコンポーネントを指定します。有効な値は、-11から11です。

例13-8 直接割当てを使用した空のIntervalYMオブジェクトの使用方法

この例では、デフォルト・コンストラクタによるNULL値の作成、年月時間隔にNULL以外の値を割り当て、それに基づいて操作を実行する方法が示されています。

Environment *env = Environment::createEnvironment();

// Create a NULL year-month interval
IntervalYM ym
if(ym.isNull())
   cout << "\n ym is null";

// Assign a non-NULL value to ym
IntervalYM anotherYM(env, "10-30");
ym=anotherYM;

// Now all operations on YM are valid
int yr = ym.getYear();

例13-9 ResultSetおよびtoText()メソッドを使用したIntervalYMオブジェクトの使用方法

この例では、結果セットから年月時間隔の列を取得し、+=演算子を使用して年月時間隔に追加し、次に、*演算子を使用して乗算して、2つの年月時間隔を比較し、その後、一方の年月時間隔をtoTextメソッドで文字列に変換する方法が示されています。

//SELECT WARRANT_PERIOD from PRODUCT_INFORMATION
//obtain result set
resultset->next();

//get interval value from resultset
IntervalYM ym1 = resultset->getIntervalYM(1);

IntervalYM addWith(env, 10, 1);
ym1 += addWith;    //call += operator

IntervalYM mulYm1 = ym1 * Number(env, 10);    //call * operator
if(ym1<mulYm1)    //comparison
   .
   .
string strym = ym1.toText(3);    //3 is the leading field precision

表13-22 IntervalYMメソッドの概要

メソッド 概要

IntervalYM()

IntervalYMクラスのコンストラクタです。

fromText()

stringIntervalYMに変換します。

fromUText()

UStringIntervalYMに変換します。

getMonth()

月の時間隔値を戻します。

getYear()

年の時間隔値を戻します。

isNull()

時間隔がNULLかどうかをチェックします。

operator*()

2つのIntervalYM値の積を戻します。

operator*=()

乗算による割当てを行います。

operator=()

単純割当てを行います。

operator==()

abが等しいかどうかをチェックします。

operator!=()

abが等しくないかどうかをチェックします。

operator/()

interval(a/b)の値で戻します。

operator/=()

除算による割当てを行います。

operator>()

abを超えているかどうかをチェックします。

operator>=()

ab以上かどうかをチェックします。

operator<()

ab未満かどうかをチェックします。

operator<=()

ab以下かどうかをチェックします。

operator-()

interval(a-b)の値で戻します。

operator-=()

減算による割当てを行います。

operator+()

2つのIntervalYM値の合計を戻します。

operator+=()

加算による割当てを行います。

set()

時間隔を指定した値に設定します。

setNull()

時間隔をNULLに設定します。

toText()

時間隔をstring表現に変換します。

toUText()

時間隔をUString表現に変換します。

13.16.1 IntervalYM()

IntervalYMクラスのコンストラクタです。

構文 説明
IntervalYM();

NULLIntervalYMオブジェクトが作成されます。NULLIntervalYMは、operator*()メソッドを割り当てるか、コールすることによって初期化できます。NULLIntervalYMオブジェクトでコールできるメソッドは、setName()isNull()です。

IntervalYM(
   const Environment *env,
   int year  = 0,
   int month = 0);

指定されたEnvironment内でIntervalYMオブジェクトを作成します。

IntervalDS(
   const IntervalYM &src);

コピー・コンストラクタです。

パラメータ 説明
env

Environmentを指定します。

year

IntervalYMオブジェクトのyearフィールドを指定します。

month

IntervalYMmonthフィールドを指定します。

src

IntervalYMオブジェクトのコピー元を指定します。

13.16.2 fromText()

このメソッドは、時間隔をinpstrの値に初期化します。文字列は、環境に設定されているNLSパラメータを使用して解釈されます。

NLSパラメータはenvから選択されます。envNULLの場合は、NLSパラメータがインスタンスに関連付けられている環境から選択されます(関連付けられている場合)。

構文

void fromText(
   const string &inpStr,
   const string &nlsParam = "",
   const Environment *env = NULL);
パラメータ 説明
inpStr

'年-月'形式の年月時間隔を示すstring型文字列を指定します。

nlsParam

NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。

env

NLSパラメータが使用される環境を指定します。

13.16.3 fromUText()

指定したUStringから時間隔を作成します。

構文

void fromUText(
   const UString &inpStr,
   const Environment *env=NULL );
パラメータ 説明
inpStr

'年-月'形式の年月時間隔を示す入力用UString型文字列を指定します。

env

Environmentを指定します。

13.16.4 getMonth()

このメソッドは、時間隔の月要素を戻します。

構文

int getMonth() const;

13.16.5 getYear()

このメソッドは、時間隔の年要素を戻します。

構文

int getYear() const;

13.16.6 isNull()

このメソッドは、時間隔がNULLかどうかをテストします。時間隔がNULLの場合はTRUEを、それ以外の場合はFALSEを戻します。

構文

bool isNull() const;

13.16.7 operator*()

このメソッドは、時間隔に係数を乗算し、その結果を戻します。

構文

const IntervalYM operator*(
   const IntervalDS &interval
   const Number &val);
パラメータ 説明
interval

乗算する時間隔です。

val

時間隔に乗算する値を指定します。

13.16.8 operator*=()

このメソッドは、時間隔に指定の値を乗算します。

構文

IntervalYM& operator*=(
   const Number &factor);
パラメータ 説明
factor

乗算する値を指定します。

13.16.9 operator=()

このメソッドは、指定された値を時間隔に割り当てます。

構文

IntervalYM& operator=(
   const IntervalYM &src);
パラメータ 説明
src

割り当てる値を指定します。

13.16.10 operator==()

このメソッドは、指定した2つの時間隔を比較します。2つの時間隔が等しい場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator==(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.11 operator!=()

このメソッドは、指定した2つの時間隔を比較します。2つの時間隔が等しくない場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator!=(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.12 operator/()

このメソッドは、時間隔を係数で除算した結果を戻します。

構文

const IntervalYM operator/(
   const IntervalYM &dividend,
   const Number &factor);
パラメータ 説明
dividend

被除数の時間隔を指定します。

factor

時間隔を除算する値を指定します。

13.16.13 operator/=()

このメソッドは、時間隔を係数で除算します。

構文

IntervalYM& operator/=(
   const Number &factor);
パラメータ 説明
factor

日時時間隔を指定します。

13.16.14 operator>()

このメソッドは、指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔より長い場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator>(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.15 operator>=()

このメソッドは、指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔以上の長さの場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator>=(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.16 operator<()

このメソッドは、指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔より短い場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します。

構文

bool operator<(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.17 operator<=()

このメソッドは、指定した2つの時間隔を比較します。第1の時間隔が第2の時間隔以下の長さの場合はTRUEを、それ以外の場合はFALSEを戻します。いずれかの時間隔がNULLの場合はSQLExceptionが発生します

構文

bool operator<=(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.18 operator-()

このメソッドは、指定された時間隔の差を戻します。

構文

const IntervalYM operator-(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.19 operator-=()

このメソッドは、この時間隔と別の時間隔との差を計算します。

構文

IntervalYM& operator-=(
   const IntervalYM &val);
パラメータ 説明
val

日時時間隔を指定します。

13.16.20 operator+()

このメソッドは、指定された時間隔の和を戻します。

構文

const IntervalYM operator+(
   const IntervalYM &first,
   const IntervalYM &second);
パラメータ 説明
first

比較対象の最初の時間隔を指定します。

second

比較対象の第2の時間隔を指定します。

13.16.21 operator+=()

このメソッドは、IntervalYMvalの和をIntervalYMに割り当てます。

構文

IntervalYM& operator+=(
   const IntervalYM &val);
パラメータ 説明
val

日時時間隔を指定します。

13.16.22 set()

このメソッドは、間隔を指定した値に設定します。

構文

void set(
   int year,
   int month);
パラメータ 説明
year

年のコンポーネントを指定します。有効な値は、-10の9乗〜10の9乗です。

month

月のコンポーネントを指定します。有効な値は、-11から11です。

13.16.23 setNull()

このメソッドは、時間隔をNULLに設定します。

構文

void setNull();

13.16.24 toText()

このメソッドは、時間隔を表す文字列を戻します。

構文

string toText(
   unsigned int lfprec,
   const string &nlsParam = "") const;
パラメータ 説明
lfprec

先行フィールド精度を指定します。

nlsParam

NLSパラメータ文字列を指定します。nlsParamが指定されている場合は、この指定によって、変換に使用されるNLSパラメータが決まります。nlsParamが指定されていない場合は、NLSパラメータがenvpから選択されます。

13.16.25 toUText()

時間隔をUString表現に変換します。

構文

UString toUText(
   unsigned int lfprec) cosnt;
パラメータ 説明
lfprec

先行フィールド精度を指定します。