[seasar-dotnet:1159] Re: DBFlute BatchUpdateについて

菊池和彦 [E-MAIL ADDRESS DELETED]
2008年 11月 21日 (金) 18:54:21 JST


菊池です

# DBFluteは殆ど触ってないので接続をどっから取ってくるとかちっとも把握してなくて
#とんちんかんな事言ってるかもしれません。

 DbProviderFactory.CreateDataAdapter ではだめですか?
 DbProviderFactoryをどっから取ってくるかという問題にすり変わるだけかもしれませんけど。

 標準的な .NET の設定系での ConnectionStringStttings を使っているのであれば ProviderName
でDB接続プロバイダ名が解るのでDbProviderFactories.GetFactoryでDbProviderFactoryが
取得できます。



DbProviderFactories.GetFactory メソッド (String)
http://msdn.microsoft.com/ja-jp/library/h508h681(VS.80).aspx

ConnectionStringSettings.ProviderName プロパティ
http://msdn.microsoft.com/ja-jp/library/system.configuration.connectionstringsettings.providername(VS.80).aspx

 ちゃんとやればDB非依存なADO.NETコードは書けるのですが、SqlClient固有の設定とかが
if( conn is SqlClient )  な条件分岐になりやすくて結局DB依存してしまいやすい罠だったりしますけど。


2008/11/21 18:12 kubo <[E-MAIL ADDRESS DELETED]>:
> 久保(jflute)です。
>
>> あと課題は、DataTableがI/Fになっているということなので、
>> 内部的にList<Entity>の内容をDataTableの形に直してあげる必要が
>> ありそうですね。
>> (DataTableを使ったことがないのでそれが可能なのか
>> どうかよくわかってません。。。)
>
> もう一つ課題と思われるのが、
> DbDataAdaptor自身はAbstractクラスで、
> それぞれのDB依存のサブクラスのインスタンスを生成しなければ
> なりませんが、DBFlute上でDB依存せずにDB依存のサブクラスの
> インスタンスを生成する方法がちょっと今わかっていません。
>
> 2008/11/21 kubo <[E-MAIL ADDRESS DELETED]>:
>> 久保(jflute)です。
>>
>>> http://msdn.microsoft.com/ja-jp/library/kbbwt18a(VS.80).aspx
>>> こちらにあるとおり、DbDataAdapterのUpdateBatchSizeを指定することで
>>> バッチ更新ができるようです。
>> おお、了解です。
>>
>>> 記述が正確でなく申し訳ございませんでした。
>>> 自分で一度試してみようと思います。
>> よろしくお願いします。
>> 情報提供本当に助かります。
>>
>> あと課題は、DataTableがI/Fになっているということなので、
>> 内部的にList<Entity>の内容をDataTableの形に直してあげる必要が
>> ありそうですね。
>> (DataTableを使ったことがないのでそれが可能なのか
>> どうかよくわかってません。。。)
>>
>> 2008/11/21 井上忠彦 <[E-MAIL ADDRESS DELETED]>:
>>> 久保様
>>>
>>> 早速のご返答ありがとうございます。
>>>
>>> http://msdn.microsoft.com/ja-jp/library/kbbwt18a(VS.80).aspx
>>> こちらにあるとおり、DbDataAdapterのUpdateBatchSizeを指定することで
>>> バッチ更新ができるようです。
>>>
>>> 記述が正確でなく申し訳ございませんでした。
>>> 自分で一度試してみようと思います。
>>>
>>> 以上、宜しくお願い致します。
>>>
>>> kubo さんは書きました:
>>>> 久保(jflute)です。
>>>>
>>>> こんにちは、井上さん
>>>> 取り急ぎの返答です。
>>>>
>>>>> 話を蒸し返してもうしわけございません。
>>>>> DataAdapterのUpdate()で、バッチ更新ができるようですが、
>>>>> この機能では不十分なのでしょうか?
>>>>
>>>> http://msdn.microsoft.com/ja-jp/library/system.data.common.dataadapter.update(VS.80).aspx
>>>> その機能はこちらのことでよろしいでしょうか?
>>>>
>>>> もし、そうであれば、
>>>>> これらのステートメントはバッチ処理として実行されるのでは
>>>>> ない点に注意してください。各行は個別に更新されます。
>>>> という記述がちょっと気に掛かります。
>>>> (単に中でループしているだけではあまり意味がないのですが)
>>>>
>>>> 2008/11/21 井上忠彦 <[E-MAIL ADDRESS DELETED]>:
>>>>> お世話になっております。
>>>>> 井上です。
>>>>>
>>>>> 話を蒸し返してもうしわけございません。
>>>>> DataAdapterのUpdate()で、バッチ更新ができるようですが、
>>>>> この機能では不十分なのでしょうか?
>>>>>
>>>>> 以上、宜しくお願い致します。
>>>>>
>>>>> 井上忠彦 さんは書きました:
>>>>>> 久保様 杉本様
>>>>>>
>>>>>> 了解しました。
>>>>>> ご回答ありがとうございました。
>>>>>>
>>>>>> kubo さんは書きました:
>>>>>>> 久保(jflute)です。
>>>>>>>
>>>>>>>> ADO.NETでバッチ更新(JDBCでいうaddBatchやexecuteBatchでしたっけ?)が
>>>>>>>> なかったためSeasar.NETではサポートしていません。(.NET 2.0時点で確認)
>>>>>>> 杉本さん、なるほど了解です。
>>>>>>> ありがとうございます。
>>>>>>>
>>>>>>>
>>>>>>>> JDBCでいうaddBatchやexecuteBatchでしたっけ?
>>>>>>> 合ってます。
>>>>>>>
>>>>>>>
>>>>>>> 2008/11/10 Kazuya Sugimoto <[E-MAIL ADDRESS DELETED]>:
>>>>>>>> 杉本です。
>>>>>>>>
>>>>>>>> ADO.NETでバッチ更新(JDBCでいうaddBatchやexecuteBatchでしたっけ?)が
>>>>>>>> なかったためSeasar.NETではサポートしていません。(.NET 2.0時点で確認)
>>>>>>>>
>>>>>>>> 2008/11/10 14:40 kubo <[E-MAIL ADDRESS DELETED]>:
>>>>>>>>> 久保(jflute)です。
>>>>>>>>>
>>>>>>>>> 井上さん、こんにちは
>>>>>>>>>
>>>>>>>>>> 現在進めているプロジェクトにて
>>>>>>>>>> Seasarを使用することが決定し、
>>>>>>>>> ご利用ありがとうございます!
>>>>>>>>>
>>>>>>>>>> Java版ではbatchUpdateがあるようですが、
>>>>>>>>>> C#版では実装の予定はありますでしょうか?
>>>>>>>>> 実は、ADO.NETでそもそもバッチ更新を
>>>>>>>>> サポートしているのかどうかが不明で着手しておりません。
>>>>>>>>> (もしご存知でしたら教えて頂けるとありがたいです)
>>>>>>>>>
>>>>>>>>> また、S2Dao.NET自体もバッチ更新はサポートしておりません。
>>>>>>>>> (その理由は。。。なんでしょう?他のコミッタの方?)
>>>>>>>>>
>>>>>>>>> 2008/11/10 井上忠彦 <[E-MAIL ADDRESS DELETED]>:
>>>>>>>>>> お世話になっております。
>>>>>>>>>> 井上と申します。
>>>>>>>>>>
>>>>>>>>>> 現在進めているプロジェクトにて
>>>>>>>>>> Seasarを使用することが決定し、
>>>>>>>>>> 調査をすすめております。
>>>>>>>>>>
>>>>>>>>>> Java版ではbatchUpdateがあるようですが、
>>>>>>>>>> C#版では実装の予定はありますでしょうか?
>>>>>>>>>>
>>>>>>>>>> 以上、宜しくお願い致します。
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> 井上
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> seasar-dotnet mailing list
>>>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> seasar-dotnet mailing list
>>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>> --
>>>>>>>> Kazuya Sugimoto
>>>>>>>> Microsoft MVP Development Platforms - XML
>>>>>>>> http://d.hatena.ne.jp/sugimotokazuya/
>>>>>>>> _______________________________________________
>>>>>>>> seasar-dotnet mailing list
>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> seasar-dotnet mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> 株式会社ネスティ
>>>>> 井上忠彦
>>>>> [E-MAIL ADDRESS DELETED]
>>>>>
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>
>>>>
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>



-- 
 Kazuhiko Kikuchi <[E-MAIL ADDRESS DELETED]>
  Microsoft Valueable Professional - Visual C# 2004-2007


seasar-dotnet メーリングリストの案内