Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB6.0 動的に増やしたグリッドへの表示方法
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9448#CommentId13516
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2009/11/13 21:06:02
>> .Object プロパティを忘れずに
> これをつけてませんでした。
> なんというミス、、、
ActiveX コントロールを VB のフォーム上に貼ると、[Name プロパティ]や[Index プロパティ]など、
VB で管理するために追加拡張が加えられ、素のコンポーネントとは別のオブジェクトとなります。
.Object プロパティを用いることで、VB で拡張される前の素のオブジェクトを取得できます。
> OraDynasetを全データをLoopにてClipで
> セットしている感じです。
> (データ量もそれなりにあるためこれが脅威的に遅いのです。。。)
Clip は、複数セルに対して一括してデータを転送できるので、
それ自体にかかる時間は、さほど多くないと思います。
もしかして、ループ中で
S = S & Col1 & vbTab & Col2 & vbCr
のような文字列連結を行っていませんか? だとすると、これは御法度です。
この場合、
1. [S & Col1]に相当するメモリ領域[1]を一時確保し、そこに S & Col1 を転記。
2. [1 & vbTab]に相当するメモリ領域[2]を一時確保し、そこに [1] & vbTab を転記。
3. 使い終わったメモリ作業領域[1]を破棄する。
4. [2 & Col2]に相当するメモリ領域[3]を一時確保し、そこに [2] & Col2 を転記。
5. 使い終わったメモリ作業領域[2]を破棄する。
6. [3 & Cr]に相当するメモリ領域[4]を一時確保し、そこに [3] & vbCr を転記。
7. 使い終わったメモリ作業領域[3]を破棄する。
8. 変数 S 上に、[4]に相当するメモリ領域を確保し、そこに [4] の内容を転記。
9. 使い終わったメモリ作業領域[4]を破棄する。
という、メモリの確保と解放が繰り返されます。
このため文字列が長くなるにつれ、メモリ操作にかかるコストが無視できなくなってしまいます。