- PR -

.NETでデータベース

投稿者投稿内容
うにくま
ベテラン
会議室デビュー日: 2005/11/05
投稿数: 82
投稿日時: 2006-05-20 17:51
引用:

かるあさんの書き込み (2006-05-20 17:22) より:

それにそういう場合はストアドプロシージャなんかを
呼び出して更新したほうがいい気がする。


Accessにはストアドプロシージャはありません。
モジュール(またはクエリ)をストアドとみなすかどうかは微妙ですが。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-05-20 18:07
 なぜ、
引用:

実際には中規模以上のデータベースを操作するには
コツがあると思うのですが、いいWebページありませんか?


という質問に至ったのでしょう?

 データベース中に定義されている対象が1テーブルだろうが100だろうがそれ以上だろうが、やることは一緒です。

 また、テーブル数だけが規模を決めるものではないと思います。同時にアクセスする人(またはプログラム)の数や、データの総量、データロストに対する危険性の度合いや、要求される応答性等、テーブル数より、その他の要件で規模が決まると思います。

 ここで、本当に尋ねたいこと(知りたい情報)は、なんでしょう?個人用や、1部門での勤怠管理などを超えると、Access ではない、データベースシステムを使うようにというのは、あちこちに書いてあることではないでしょうか。


 Access と、その他の RDBMS との境目をどのように判断するか、ということでしょうか。
 リレーションシップのあるテーブルの更新について、どのようなことに気をつけるべきか、ということでしょうか。


とりあえず、PASSJ とか。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-20 18:32
引用:

うにくまさんの書き込み (2006-05-20 11:44) より:

Accessであればクエリ、SQLServerやOracleであればビュー経由で
追加・更新が出来ます。
ただし、1対1のような単純なもののみです。

#1対1というのはテーブルではなく、レコードのことです。


1対1レコードなら更新できるんですねぇ・・・
まあ、1対多が更新できないのも頷けますが。

これは良いことを聞きました。ありがとうございました。

鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 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文を発行しなければなりません。
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-20 22:34
まあ、VB6以前からデータの読み込み&コントロールへの読み込みの自動化は各自が作っていた部分だと思うのですが、こと更新に関してはゴリゴリ書いていたんですよね。
それを考えれば、単一or1対1レコードの更新が簡単にできるようになっただけでも、かなり便利なことではあります。
かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-05-20 23:30
僕はいまだにデータベースへのクエリは
データアダプタは使わないでコマンドを直につかいますね

データベースにかかわっている時間が長いせいか
自分の知らないところでSQLが流れるのがきもちわるくて…
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-20 23:42
引用:

かるあさんの書き込み (2006-05-20 23:30) より:
僕はいまだにデータベースへのクエリは
データアダプタは使わないでコマンドを直につかいますね

データベースにかかわっている時間が長いせいか
自分の知らないところでSQLが流れるのがきもちわるくて…


自分の知らないところでブラックボックス化されたものを使うことが当たり前になってきた昨今。
それでもデータベース周りについては、意外と自分で SQL 投げちゃう方が使いやすかったりしますw

#僕的には、とても奥深い話で、めちゃめちゃ語りたい話題だったりしますが。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-21 07:51
引用:

R・田中一郎さんの書き込み (2006-05-20 22:34) より:

まあ、VB6以前からデータの読み込み&コントロールへの読み込みの自動化は各自が作っていた部分だと思うのですが、こと更新に関してはゴリゴリ書いていたんですよね。


DataSource バインディングは VB6 時代にもありましたよ。
FlexGrid とか DataGrid とかですけどw
更新に関しても即時更新という形でしたが、更新を留保という形を取ることもできました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)