13.07.2015 Views

Caché での C++ の使用法

Caché での C++ の使用法

Caché での C++ の使用法

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

クエリの 使 用 法• パラメータの 設 定パラメータに 値 を 割 り 当 てます。template void set_par(int index, const D_TYPE& val);この 関 数 は、パラメータ index を val に 設 定 します。この 関 数 は、<strong>C++</strong> バインディングのあらゆるデータ 型 に 対 応 します。 同 じパラメータに 対 して、 数 回 呼 び 出 すこともできます。そのパラメータの 前 の 値 は、 消 去 されます。 新 しい 値 は同 じタイプである 必 要 はありません。• 実 行以 下 の 関 数 は、クエリを 実 行 します。すべてのパラメータが 結 合 されるまでは、これを 呼 び 出 さないでください。• フェッチvoid execute();取 得 可 能 なデータがあるかどうかを 調 べます。bool fetch();この 関 数 は、 結 果 セットから 次 の 行 を 取 得 しようとします。これが 成 功 した 場 合 に True を、 失 敗 した 場 合 に False を返 します。この 関 数 は、データをフェッチしません。これ 以 上 フェッチするデータがあるかどうかを 確 認 するだけです。• データの 検 索クエリの 実 行 が 成 功 すると、 各 レコードに 対 し 1 行 ずつ 結 果 セットを 返 します。 各 行 のデータは、 以 下 を 呼 び 出 して行 を 左 から 右 に 繰 り 返 すことにより、アクセスできます。void get_data(T* val);T は、<strong>C++</strong> バインディングのいずれのデータ 型 でもかまいません。d_string には、データの 変 換 方 法 を 指 定 できます。void get_data(d_string* val, str_conv_t conv = NO_CONV);既 定 では、データを 変 換 しません (“NO_CONV” 値 )。"CONV_TO_MB" はデータをマルチバイトに、"CONV_TO_UNI"はデータを Unicode に 変 換 します。各 呼 び 出 しの 後 、 暗 黙 の 反 復 子 は 次 の 列 に 移 動 します (したがって、get_data() を 2 回 呼 び 出 して、 同 じ 列 のデータに 2 回 アクセスすることはできません)。これにより、 実 装 はすべてのデータをクライアントに 格 納 する 必 要 がなくなります。そうでない 場 合 は、クエリの 使 用 が、 大 量 のメモリによるオーバーヘッドを 引 き 起 こすことになります。データに 対 し、ランダム・アクセスが 必 要 なアプリケーションは、 行 のすべてのデータを 最 初 に 読 み 取 る 必 要 があります。以 下 を 呼 び 出 すと、1 列 または 複 数 の 列 をスキップできます。void skip(int num_cols = 1)以 下 を 呼 び 出 すと、 次 に 処 理 される 列 のインデックスを 取 得 できます。int get_cur_idx();以 下 は、Sample.Person にクエリを 発 行 する 簡 単 な 関 数 です。void example(Database& db){d_query query(&db);d_string name;d_int id;d_date dob;const wchar_t* sql_query = L"select ID, Name, DOB from Sample.Personwhere ID > ? and FavoriteColors = ? ";int size = wcslen(sql_query);<strong>Caché</strong> <strong>での</strong> <strong>C++</strong> の 使 用 法 27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!