みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

レコードセットとデータセットの違い

こんにちは。Access VBAの本を読んでいたらデータはレコードセットで取得すると書いてあります。

ネットで.NETの記事を読んでいたらデータはデータセットで取得と書いてありました。

このレコードセット、データセットの違いは平たく言うとなんでしょうか?

私はAccess VBAが少しわかる程度のレベルです。

投稿日時 - 2012-04-22 22:16:56

QNo.7435910

暇なときに回答ください

質問者が選んだベストアンサー

データセットは、ADO.NETで言うデータベース全体のこと、レコードセットはDAOやADOで言うDBテーブルのことですね。ADO.NET対応の新しいVBAと、従来型のDAOやADOを使うVBAは、ぜんぜん別の物ですよ。

.NETではデータベースをオープンして生成する「データセット」クラスの中に各テーブルが入っていますが、DAOやADOでは、オープンしたデータベースを使ってテーブル毎に「レコードセット」オブジェクトを生成します。

投稿日時 - 2012-04-22 23:23:44

お礼

なんと!わかりやすいご解説ありがとうございます!!データセットをデータベース全体という言葉がよく理解できました。ありがとうございます!

投稿日時 - 2012-04-24 17:40:45

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

 本当に平たく言うとAccess VBAのレコードセットというのはDAOまたはADODBという「Active X オブジェクト」であり、(少なくともDAOの方は)AccessというMicrosoft製の簡易データベースアプリケーションの中でAccessのMDB内に格納されているデータを操作するための機能だ。

 これに対してMicrosoft .Net Frameworkのデータセットとは、ざっと表面を見ただけではレコードセットと何も変わらないように見える(実際、Accessでレコードセットを使っていた人がデータセットをレコードセットと同じ感覚で使っても何も問題ない)。
 .Net FrameworkのデータセットはDataSet、DataTableなどの.Net Frameworkのクラス群であり、実際にAccessやOracleなどのDBMSから.Netアプリケーションの中でデータを取得してきた際に、データセットにデータを蓄えておく場合もあるが、データセットはそれ自体がインメモリデータベースの機能を備えている。データセット自体はOracleやMS SQL Serverなど既存のDBMSとは独立した概念や存在であり、Oracleに接続してデータをごっそりとってきてデータセットに蓄える役割を担うのはデータアダプターなどの別クラスになる。ただ、開発を専門に行うプログラマーでも無い限りここまでは知っておかなくて良い。

 なので技術の土台的な話ではレコードセットはActive Xオブジェクトでデータセットは.Net Frameworkのクラスという事であり、プログラマー的にはデータセットはDB独立性や操作性などレコードセットから進化して超使いやすくなったDB操作用のプログラム部品と思えば間違いではないのではないでしょーか。

投稿日時 - 2012-04-22 23:21:02

お礼

わかりやすい解説ありがとうございました!!

投稿日時 - 2012-04-24 17:43:07

あなたにオススメの質問