ADO.NETの質問・雑談スレ2 (421レス)
上下前次1-新
117: [age] 2009/04/04(土)18:16 ID:??? AAS
>>89で紹介されてるサイトで、ADOは複数テーブルから JOIN したデータに
対する非接続型のデータ更新メカニズムもサポートされているとあるが、
俺はそればっかり使ってたから、ADO.NETになって、DataAdapter.Update()が
思うように動作せず、非常に苦労したw
なんでバージョンアップなのに、UPDATEする際はSQL文をかかないといけないんだ
みたいなw
ADOの時は、SQL文はSELECTのみ書いて、あとはrecordset.update()
っていうスタイルの人、結構いたんじゃないかな。
118: 2009/04/04(土)18:30 ID:??? AAS
>>115
まじめに、ちゃんと記事を読んだ上で、ネットワーク負荷に差が出る理由がわからんのだが
バカな俺にわかるように説明してくれないか
119: 2009/04/04(土)21:22 ID:??? AAS
LINQ to SQLは現バージョンでは更新系は弱いとMSが言ってるだろ。
Entity Frameworkに期待しなさい。今は過渡期である。
120: 2009/04/05(日)03:16 ID:??? AAS
iBATIS.NETを使うといいよ。JavaのO/Rマッパーの移植。
121: 2009/04/05(日)09:34 ID:??? AAS
nhibernateはどうよ?
122: 2009/04/05(日)16:11 ID:??? AAS
ん?DataTableのDataRowの状態をみてSQLを自動生成のスタイルの人って、
ストアドプロシージャとか使わないのかな?
ビジネスロジックを分けるという考え方よりも、SQL自動生成のクラスを
自作しているという感じで、O/Rマッピングを行うクラスを自作するような感じ?
123: 2009/04/06(月)23:04 ID:??? AAS
>>114
92だけど、102までしか引っ張ってませんが ^^;
124: 2009/04/06(月)23:10 ID:??? AAS
>>114
理由がお粗末で申し訳なかったね。
自分は分からないから、具体的に説明して。
どうせ、理由付けて教えては貰えないだろうけど。。(笑
125(1): 2009/04/06(月)23:56 ID:??? AAS
すまんな、俺が引っ張ったせいで92に迷惑が
んで俺的結論はそんな区別に大した意味ないから気にする必要はない、だが
ネットワーク負荷に差が出るんだから区別する意味はあるという人もいるみたい
負荷に差が出る理由はいくら考えてもわからないんで本気で教えてほしいんだがなぁ
126(2): [age] 2009/04/07(火)07:34 ID:??? AAS
>>125
スタンドアロン、もしくは、それに近い環境のシステムしかイメージして無いから
そういう風になるんじゃないの?
もっと、大容量のデータをやりとりするとか、端末がたくさんつながっているとか
そういうケースもイメージしてでの結論なのか?
念のために解説しておくが、前者の場合は、違いはほとんどない。
127: 2009/04/07(火)11:03 ID:??? AAS
>>126
大容量のデータやり取りで差がでるのなら、少量のデータでも少々の差がでてるはずだよな
その差が大量になれば顕著になるだけの話だろ
実際にどのくらいの差が出るかはともかく、差が出る理由が知りたいんだが
同じように、端末何台あろうとも、負荷の差がでる理由にはならんわな
もしかしてお前の言うネットワークの負荷ってのは、アクセス集中だけをいってるのか?
負荷に差がでるんだから、1台あたりのトラヒック量に差が出ると解釈してるんだが
あ、ちなみに、接続型と非接続型で、どっちか負荷が高くてどっちが低いのだ?
128(1): [age] 2009/04/07(火)11:12 ID:??? AAS
「非接続型」っていうのは、DB操作に関する一般的な用語ではなく
MSが独自に提案している用語だろ?
実際にぐぐってみるとADO.NETのページばかりがヒットする。
だから、「なんか詳しいことはよくわからないけれど」程度に
理解しておいてもいいんじゃないの?
第三者の俺から見ると、用語の定義についてしつこく
掘り下げて質問してる意図が良く分らんのだが。
129: 2009/04/07(火)11:49 ID:??? AAS
>>128
ここADO.NETの質問・雑談スレだし
ま、しつこ言わいとれれば実際そのとおりだが
いまの流れは、
>今の非接続型、接続型の区別にどんな意味があるんだ?
に対して、
>ネットワークの負荷だろ
ときて
>ネットワークの負荷に差がでる理由を教えてくれ
となり>>126へ
130(1): 2009/04/07(火)14:06 ID:??? AAS
じゃ、俺もこの議論に参加してみる。
接続型と非接続型の違いは、「DBに接続し、データの取得や更新を
する過程の部分」には無く、「取得したデータをローカルのメモリに
保存してるかどうか」の部分にあると思う。
だから、DataSetを使っていると非接続型、DataReaderは接続型
という風に分類されている。
131(1): 2009/04/07(火)14:14 ID:??? AAS
前スレの最後の方で語られていた事で、>>2の4.にまとめられている
ことだけど、「DataReaderを使いたがるスタイル」は、ADO房や
VB6プログラマに限ったことじゃないような気がする。
java(JDBC使い)から.NET開発に移ってきた人も、以前までやっていた
ものと似たようなスタイルでコーディング出来るDataReaderを
使いたがるんじゃないかな。
DB操作用のモジュールで、一般的な設計に近いものがDataReaderで
ある為、他の人にとって読みにくい!みたいな、問題が起きるような
気がする。
132(1): 2009/04/07(火)18:08 ID:??? AAS
外部リンク[pdf]:www.shoeisha.com
この文書には、「非接続型=DataSetクラスを使っていること」とあるな。
「接続型」、「非接続型」の用語の理解はこれでいいんじゃないの?
ネットワークの負荷の違いは、そのアプリケーションの組み方次第なので、
一概には言えない。(その人がイメージしているアプリの形によって差が
でるので、「こちらの方が負荷が違う」ということが多い)
133(1): 2009/04/07(火)19:52 ID:??? AAS
「非接続型=DataSetクラスを使っていること」は良いとして、
「接続型=DataSetクラスを使っていないこと」ではないと思うんだな。
「接続型」と積極的に言えるのはせいぜいADOなどで更新やスクロール可能な
結果セットを使った場合だと思う。
CommandやDataReaderクラスは非接続型か接続型という分類じゃなく、
そられを実現するための基本的なADO.NETデータプロバイダのファンクションそのものであると考えるべき。
ADO.NETを解釈すると、データプロバイダ(ドライバ)+DataSetフレームワークというべきもので
あるが、たびたびデータプロバイダのみをADO.NETと呼んだりするのでややこしいい。
ADO.NET Entity Frameworkでもデータプロバイダは共通なんだよね。
134: 2009/04/07(火)21:59 ID:??? AAS
>>132
それ、昔の.NETマガジンの記事だな
その記事みると、接続型はサーバカーソルのようにみえるな
まあ、対象がORACLEなんで若干の違いがあるのかもしれないが、
ADO.NETではサーバカーソルは(ADO.NETの機能としては)サポートしてなくて
DataReaderでさえサーバカーソルは使わないらしいが...
その記事でも、接続、非接続の区別が大事だって書いてあるなぁ
「非接続型=DataSetクラスを使っていること」が定義になるだろうってことに反対はしないが
>>130 がいうように、、「取得したデータをローカルのメモリに保存してるかどうか」が大事なとこなんだろうな
結果としてDataSetを使ってるというだけで
省8
135: 2009/04/07(火)22:45 ID:??? AAS
残念ながらそのものズバリconnectionless
136: [age] 2009/04/08(水)07:42 ID:??? AAS
俺は、「非接続型」というのは、DataSetをアピールするためのキャッチコピーの
ようなものだと思ってるんだけどな。そもそも、DB接続プログラミングに関して
そのような用語や概念は無かったのだから、DB設計をしたり実装したりする
時においてはさほど重要ではないと思う。
上下前次1-新書関写板覧索設栞歴
あと 285 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.017s