投稿日 | : 2002/08/20(Tue) 12:08 |
投稿者 | : びっぐむーん |
Eメール | : bobble2@yahoo.co.jp |
URL | : |
タイトル | : レコードカウントの取得についての質問 |
はじめまして。
教えて頂きたいことがあります。
初めに私の勤務している会社では開発は全て外注に出している為に私自身プログラムの開発は
ほとんどできません。
(ソースを見るくらいのレベルです)
ですから説明に至らぬところが多々あるとは思いますが、その辺りを踏まえてご教授願えたらと思い
ます。
実行環境 VB5.0
ORACLE 7.3.4
WINDOWS NT 4.0
ORACLEへの接続 OO4O
処理内容 VBの画面から伝票b入力しその伝票データの内容を画面上に表示させる。
画面機能 F3 KEY データ検索
F9 KEY 画面クリア(F3で読み込んだデータをの画面クリア)
F10 KEY 終了
オラクル上に伝票データがあり、それを画面から伝票b入力して該当するデータの内容を画面に
表示させるのですが、1伝票bノ対して明細が20行を超えると、なぜか画面には20行しか
表示されません。
しかし一度F9の画面クリアを押した後に再度同じ伝票b入力すると何故か今度は正しく表示され
ます。
この伝票内容検索の画面を立ち上げた後、一番最初に検索を行う伝票が20行を超えた時だけ
こんな現象が発生します。
オラクルのテーブルから読んできたデータを画面に表示させる際に
WHILE NOT oraRST.EOF
(値を代入する処理)
WEND
で画面上の項目に代入していっているんですが
例えば26行明細の伝票を検索した際、
画面を立ち上げた時の一回目のoraRST.RECORDCOUNT は 20(←これがおかしい!!)
2回目以降は正しく26と返ってきます。
また明細件数が20行ぴったりだった場合は
oraRST.RECORDCOUNTは20なんですがWHILE 〜 WEND のループを21回まわってしまいます。
(20行処理したにも関わらずEOFを検知しない。結果として画面上には20行目のデータが
ダブって表示され21行明細の様に表示される(この現象も画面を立ち上げた時の一回目のみ
で2回目以降は20行で正しく表示されます))
なぜ立ち上げた一回目の伝票が20行を超えた時だけこんな現象がおこるのでしょうか?
開発元にも確認をとってもらっているんですが、原因不明という答えしか返ってきません。
どうか宜しくお願いします。
長々とすいませんでした。