VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2002/08/20(Tue) 18:46
投稿者びっぐむーん
Eメールbobble2@yahoo.co.jp
URL
タイトルRe^4: レコードカウントの取得についての質問

お返事ありがとうございます。

LIMITで検索をして見ましたがHITしませんでした。

後、私が勘違いをしている部分があった?それとも新手のバグ?と思う部分があったので
改めて説明させていただきます。

データの取得方法?はこんな感じでやってると思われます。

*********************************
Public gobjOraDatabase As OraDatabase

Public Const ORADYN_READONLY = &H4&
Public Const ORADYN_NOCACHE = &H8&

*********************************
Dim oraRst  As OraDynaset
Dim G_RECCOUNT      As Long
Dim RowCnt          As Integer      '行カウンタ
*********************************

    With gobjOraDatabase
        '拠点
        .Parameters.Add "IN_KYOTEN_CD", KyotenCd, ORAPARM_INPUT
        .Parameters("IN_KYOTEN_CD").ServerType = ORATYPE_NUMBER
        
        '伝票
        .Parameters.Add "IN_FUJI_NO", FujiNo, ORAPARM_INPUT
        .Parameters("IN_FUJI_NO").ServerType = ORATYPE_NUMBER
    End With

    Set oraRst = gobjOraDatabase.CreatePlsqlDynaset("Begin Pack_受領.RstMain納品書
           (:IN_KYOTEN_CD,:IN_FUJI_NO,:RstMainNouhinData);end;", _
                      "RstMainNouhinData", ORADYN_READONLY + ORADYN_NOCACHE)

*********************************<ストアド側の定義>
TYPE RstMainNouhinData IS REF CURSOR RETURN CurMainNouhinData%ROWTYPE;

CURSOR CurMainNouhinData IS
SELECT ・・・・
FROM   ・・・・
WHERE  ・・・・・;
*********************************<ストアド側の定義>

   G_RECCOUNT = oraRst.RecordCount → この時点では26件と表示されます

   ROWCNT = 0
   While Not oraRst.EOF
       <代入処理>
     RowCnt = RowCnt + 1
     oraRst.MoveNext
   WEND

   MSGBOX RowCnt       → このMSGBOX は21と表示されます

と、こんな感じなんです。

実際は26行データなんですが、ROWCNTは21の時点でループを抜けてしまいます。
この後、画面には21行表示されているんですが、20行目と21行目は同じデータになってます。

いつもながら長々とすいません。
処理概要はこの程度でわかりますでしょうか?


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -