いつも参考にしています。
Oracle9iのデータをVB6側からSelect文で抽出しているのですが、
Openの直後にMoveFirstと書くのは一般的なのでしょうか?
一緒に開発している年配の方が、
"MoveFirstは絶対に書いておいた方がいい!"と
言うのですが、本当にそうなのでしょうか?
ご存知の方、宜しくお願い致します。
書かないよりは、書いておいた方がいい。
省略するよりは、明示した方がいい。っていう程度です。
変数の宣言などで、
Option Explicitと書いておいた方がいい。
型指定で、
Dim IntCnt よりは
Dim IntCnt As Integer と書いておいた方がいい!
さて、あなたはどう思いますか?
遊びのプログラムならば、
「動けばいいじゃん」で不要です。
>Openの直後にMoveFirstと書くのは一般的なのでしょうか?
コーディング次第でしょうね
MoveFirstでなく、MoveLastが必要な場合もあります。
もっとも、SQLのOrder次第でいかようにでもなります。
いなさん、こんばんは。
"省略するよりは、明示した方がいい。っていう程度"なんですねぇ〜。
周りには、
"昔は書かないとうまくいかない場合があったけど、
今は書かなくても全く問題ないから書いていない"
と言う人も・・・
書いたからといって、処理に余分な時間が掛かるって
訳でも無さそうですねぇ・・・うぅ〜ん、書いた方がいいのかなぁ〜?
さささん、こんばんは。
SQLのOrder次第でいかようにでも・・・ですか。(笑)
Openした時点でデータが先頭になっていない可能性って
結構あるのでしょうか?
>Openした時点でデータが先頭になっていない可能性って
>結構あるのでしょうか?
ん〜、論点はそこじゃないんだけどな、
そもそもほしい情報は、必ず発行したレコードの先頭からというのは、
いったい、誰が決めたの?
> 今は書かなくても全く問題ないから書いていない"
へぇ〜、そうなんだ。
どんなチェックをやって
問題ないと発言しているのか非常に興味があります。
先頭になっていないかも知れないから、
MoveFirstって書いたほうがベスト!って感じですか??
ん〜と、
ベスト、ではなくベター....だから"○○した方がよい!"
まぁ、経験的なことを言わせてもらうと、
開発したマシンでは動いていたけれども、
実際に運用する際に、不具合が出る場合があるのね?
結構ありがちなのは、
お客様の環境次第で変わってきちゃうのさ
>Oracle Serverは9iだけど、Clientは8.0.6を使っているとかさ
その時、MoveFirstが書いてあるか?で障害が出なければ易いもんじゃない?
書かなくても問題は無いんだろうけど、
その程度(MoveFirstだけで済む)ならば、
より確実に動作するように(= 安全のために)するのがCoolじゃないのかな?
環境がちょ〜っと変わった程度で、動かなくなるようなプログラムって
脆弱じゃない?
ミドルウェアにもよるでしょう。
> Openした時点でデータが先頭になっていない可能性って
oo4o の場合、ORADYN_NO_MOVEFIRST の指定如何によって、
先頭になっていない(MoveFirstが必要になる)可能性があります。
> うぅ〜ん、書いた方がいいのかなぁ〜?
ADO の場合、EOF と BOF の状態如何によっては、
MoveFirst の呼び出しが実行時エラーとなる可能性があります。
あ、ささ さんの言いたいことが今になってわかった。
>いったい、誰が決めたの?
=ORADYN_NO_MOVEFIRST の指定されていると...
oo4oだと
RecordCountを参照するとMoveLastした直後と同じ状態になる
という話もありました
ツイート | ![]() |