アプリ版:「スタンプのみでお礼する」機能のリリースについて

VB.netにてSAP BAPIの戻り値を参照する際にエラーとなり困っています。

--- Connection処理 ---
--- BAPIコール ---
objReturnが結果として戻ってくる
--- BAPIコール(終了) ---
dim objStr as Object
for i = 1 as integer to objReturn.Rowcount
 for j = 1 as integer to 10 '項目数
  objStr = objReturn.Value(i,j)
 next j
next i
--- Connection切断 ---

上記記載の場合、特に問題なくデータ取得できるのですが、
objReturnのデータ量が大きいため以下の様にして高速化を計りました。
--- Connection処理 ---
--- BAPIコール ---
objReturnが結果として戻ってくる
--- BAPIコール(終了) ---
dim aryReturn as Object
dim objStr as Object
aryReturn = objReturn.Data
for i = 1 as integer to objReturn.Rowcount
 for j = 1 as integer to 10 '項目数
  objStr = aryReturn(i,j)
 next j
next i
--- Connection切断 ---

この時、5万件程度のデータであれば取得できたのですが、
10万件以上のデータを取得しようとした際に
エラーとなってしまいました。
(データ取得できなかった模様・・・)

Dataメソッドでデータを取得する場合、データ量などによる制限があるのでしょうか?
また、objReturnの内容参照をする別の方法がありますでしょうか?
(Valueでは、件数が大きくなると格段に処理速度が落ちているようです)

抽象的な質問で申し訳ありませんが、ご教授の程よろしくお願い致します。

A 回答 (1件)

こんにちは。


ぱっと見た目ですがinteger型は正数32,767までしか入らずそれ以上はオーバーフローします。
Long型ならば100,000,000でも入ります。

この回答への補足

早速の回答ありがとうございます。
ただ、VB6のIntegerは確かに32,767までだったのですが、
VB.netのIntegerは2,147,483,647まで拡張されているようです。
(自分も今日知った次第ですが・・・><)

5万でも取得できていますので、そこが原因ではないと考えております。
また、1件目からエラーが発生しています。
objStr = aryReturn(i,j)  ←の地点

とはいえ、こちら知識不足ですのでこれからもご教示お願い致します。

補足日時:2009/12/16 17:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!