- 締切済み
Commandオブジェクトについて
VBをやった事の無い私が、会社でプログラムを組むことになってしまい、今、困っています。 ADOを使ってSQLに接続する場合、RecordsetやConnection、Commandなどのオブジェクトがありますよね? 会社で渡されたサンプルには、 /////////////////////////////////////////////// Dim rc As New ADODB.Recordset Dim cmd As New ADODB.Command ・ ・ ・ cmd.ActiveConnection = a_db cmd.CommandText = "SELECT * FROM AA_DATA" rc.Open cmd ・ ・ ・ /////////////////////////////////////////////// ↑こんな感じにCommandオブジェクトを使用しているのですが、参考書などのサンプルを見ると、Commandオブジェクトをあまり使っていないように思えます。 私は、Commandオブジェクトを使用しなくても接続できると解釈したのですが・・・。 何故Commandオブジェクトを使用するのでしょうか? Commandオブジェクトを使用することによって、何かメリットがあるのでしょうか? 本当に初心者質問で申し訳ありません。 MSDNのヘルプや参考書を見てもわからないんです。 どなたか分かりやすく教えてください。 よろしくお願いいたします!
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- muran
- ベストアンサー率31% (12/38)
きちんと検証したわけではないので、自信はないのですが・・・ データの更新は、 CommandオブジェクトでもConnectionオブジェクトのどちらにも 更新メソッドがありますので、どちらでも可能です。 それと、Commandオブジェクトでないとできない処理 (例えばストアドプロシージャ呼出) もあるのでそういった違いでしょうか・・・ 処理内容は同じでも速度の違いもあるようです 1回きりの処理だったらConnectionオブジェクト使用のほうが速く、 2回以上同じ処理を繰り返すのであればCommandオブジェクトのほうが速いそうです。 メモリ上に処理内容を残すか残さないかとか、 そういう違いだと聞いたことがあります。 あまり自信ないのですが、何かのお役に立てれば幸いです
お礼
御礼が遅くなりました! なるほど、そういう違いなのですか・・・。 やっぱり、Commandオブジェクトを使用した方が良いのでしょうか。 今は、Commandオブジェクトがまだ良く分かっていないので、Commandオブジェクトを使わないでやっていますが・・・。 ともかく、アドバイスありがとうございました! 参考にします!!