投稿日 | : 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行目は同じデータになってます。
いつもながら長々とすいません。
処理概要はこの程度でわかりますでしょうか?