| Interstage Shunsaku Data Manager アプリケーション開発ガイド - Microsoft(R) Windows(R) 2000/ Microsoft(R) Windows Server(TM) 2003 - - UNIX共通 - |
目次
索引
![]()
|
| 第2部 APIでのアプリケーション開発 | > 第11章 C APIのアプリケーション開発 | > 11.2 C APIの使用方法 | > 11.2.2 データの検索 |
ヒット件数の上限値を設定することで、ソートまたは集計の応答性能を安定させることができます。ヒット件数が上限値を超えた場合には、ソートまたは集計を中断し検索条件に一致したヒット件数を通知します。
ヒット件数が上限値を超えないように検索式に条件を追加し、ソートまたは集計の検索範囲を絞り込みます。
ヒット件数の上限値を設定するには、ShunSetStatementAttr関数を使用します。
ヒット件数の上限値を設定する場合の流れについて、以下の図に示します。

SHUNHSTMT StmtH;
/* データ操作ハンドルの割当て */
ShunAllocHandle(ConH, &StmtH);
/* ヒット件数の上限値を設定 */
ShunSetStatementAttr(StmtH, SHUN_ATTR_HIT_COUNT_LIMIT,10000); (1)
/* ソート式を指定して検索を実行 */
ShunSearch(StmtH, 1, NULL, 0, 30,
"/document/base/prefecture == '大阪'",
"/document/base/name, /document/base/price",
"/document/base/price/text() DESC",
&Hit_Cnt, &Return_Cnt, &Returnable_Cnt,
&Rec_Id_Out, &Data,
&First_Pos, &Last_Pos);
/* ヒット件数が上限値を超えているかの確認 */
ShunGetStatementAttr(StmtH, SHUN_ATTR_HIT_COUNT_LIMIT_OVER,&Attr_Value); (2)
if(Attr_Value == SHUN_TRUE) {
printf("ヒット件数が上限値を超えました\n");
printf("ヒット件数 = %d\n", Hit_Cnt); (3)
}
else {
/* 検索した結果の取出し */
printf("ヒット件数 = %d\n", Hit_Cnt);
if(Hit_Cnt > 0) {
for (i = 0; i < Return_Cnt; i++) {
printf("[結果]%d件目 = %s\n", i+1, Data[i].Data);
}
}
}
/* データ操作ハンドルの解放 */
ShunFreeHandle(StmtH); |
ShunSetStatementAttr関数のパラメタにヒット件数の上限値を設定します。

ソート式が設定されていない場合には、ShunSearch関数実行時にエラーとなります。
ShunGetStatementAttr関数でヒット件数が上限値を超えているかの確認をします。
ヒット件数が上限値を超えている場合は、ヒット件数のみ取出し可能です。
目次
索引
![]()
|