2009-07-21 7 views
0

これは尋ねられたことがわかりましたhere。しかし、私の質問は少し異なります。切断された原則を念頭に置いてデータセットが設計されたとき、アプリケーションの予期しない終了、例えば停電やWindowsのハングや再起動につながるシステム例外を処理する機能として提供されたもの。ユーザーが約100行を入力し、それがデータセットだけで変更されたとします。通常、データセットはアプリケーションの終了時または適時に更新されます。予期しないエラーが発生した場合、私のデータセットには何が起こるか

vb 6.0を使ったプログラミングでは、すべての対話がデータベースで直接行われていたため、成功したトランザクションはそれぞれ自動的にコミットされていました。それはどのようにデータセットを使って行うことができますか?

答えて

0

データセットはデータベースに直接アクセスすることは決してありません。これらのモデルは、接続されていないモデルのみです。マシン障害から回復できるという意図はありません。

データベースに対してライブ作業を行う場合は、DataReaderを使用し、データベースに対してDbCommandsを発行して変更を行う必要があります。これはもちろん、データベースサーバーへの負荷を増加させます。

ほとんどのアプリケーションでは、2つのバランスをとる必要があります。ユーザーが重要なデータを新しい行として入力したことを知っている場合は、データベースへの挿入コマンドを実行し、ローカルのキャッシュされたDataSetにコピーを配置します。次に、切断されたデータに対してローカルクエリを実行し、挿入をすぐに保存します。

0

DataSetは非常に簡単にシリアル化できるため、ファイルシステムへのDataSetのシリアル化を使用して、独自の定期的なバックアップをディスクに実装できます。これにより、保護が提供されますが、アプリケーションが以前にディスクに保存した可能性のあるデータをチェックする独自のコードを記述する必要があります。

また、DataSetを無視してSqlDataReadersとSqlCommands同じ種類の「データベースへの直接アクセス」については説明しています。

+0

あなたはそれを手に入れました。それは次の質問http://stackoverflow.com/questions/1160639/why-switch-from-ado-to-ado-netにあります。私はまだsqldatareadersとsqlcommandsを使用しなければならない場合、私はado.netに切り替える必要がありますか? –

関連する問題