- - PR -
.NETでデータベース
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-20 17:51
Accessにはストアドプロシージャはありません。 モジュール(またはクエリ)をストアドとみなすかどうかは微妙ですが。 | ||||
|
投稿日時: 2006-05-20 18:07
なぜ、
という質問に至ったのでしょう? データベース中に定義されている対象が1テーブルだろうが100だろうがそれ以上だろうが、やることは一緒です。 また、テーブル数だけが規模を決めるものではないと思います。同時にアクセスする人(またはプログラム)の数や、データの総量、データロストに対する危険性の度合いや、要求される応答性等、テーブル数より、その他の要件で規模が決まると思います。 ここで、本当に尋ねたいこと(知りたい情報)は、なんでしょう?個人用や、1部門での勤怠管理などを超えると、Access ではない、データベースシステムを使うようにというのは、あちこちに書いてあることではないでしょうか。 Access と、その他の RDBMS との境目をどのように判断するか、ということでしょうか。 リレーションシップのあるテーブルの更新について、どのようなことに気をつけるべきか、ということでしょうか。 とりあえず、PASSJ とか。 | ||||
|
投稿日時: 2006-05-20 18:32
1対1レコードなら更新できるんですねぇ・・・ まあ、1対多が更新できないのも頷けますが。 これは良いことを聞きました。ありがとうございました。 | ||||
|
投稿日時: 2006-05-20 20:22
ADO.NETの特徴の一つは、DataAdapterによりSELECT文とは独立して更新SQL文を定義できるようになったことでしょう。
この仕組みの結果、従来のADOやDAOのレコードセットに存在していた「SELECT文の内容により更新不能なレコードセットができてしまう」という制約から解放されています。 SELECT文の内容が単一テーブルだろうと、一対一結合だろうと、複雑なサブクエリーを含むものだろうと、SELECT結果から更新対象行さえ特定でき、そのUPDATE文やDELETE文さえ書くことができるなら、DataAdapterを構成して、それに更新処理を任せてしまえるのですから。 しかしADO.NETのDataAdapterでも1変更行に対して1更新SQL文しか定義できないので、ACCESSのようにトリガやストアド関数が使えないDBでは、「売上明細レコードの更新時に売上明細そのものと在庫と受注消し込みをする」といった複数の更新処理をDB側で負担することができないので、DataAdapterから独立したDataCommandで更新SQL文を発行しなければなりません。 | ||||
|
投稿日時: 2006-05-20 22:34
まあ、VB6以前からデータの読み込み&コントロールへの読み込みの自動化は各自が作っていた部分だと思うのですが、こと更新に関してはゴリゴリ書いていたんですよね。
それを考えれば、単一or1対1レコードの更新が簡単にできるようになっただけでも、かなり便利なことではあります。 | ||||
|
投稿日時: 2006-05-20 23:30
僕はいまだにデータベースへのクエリは
データアダプタは使わないでコマンドを直につかいますね データベースにかかわっている時間が長いせいか 自分の知らないところでSQLが流れるのがきもちわるくて… | ||||
|
投稿日時: 2006-05-20 23:42
自分の知らないところでブラックボックス化されたものを使うことが当たり前になってきた昨今。 それでもデータベース周りについては、意外と自分で SQL 投げちゃう方が使いやすかったりしますw #僕的には、とても奥深い話で、めちゃめちゃ語りたい話題だったりしますが。 | ||||
|
投稿日時: 2006-05-21 07:51
DataSource バインディングは VB6 時代にもありましたよ。 FlexGrid とか DataGrid とかですけどw 更新に関しても即時更新という形でしたが、更新を留保という形を取ることもできました。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |