tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルデータベースの更新について
記事No6111
投稿日: 2007/08/21(Tue) 13:30
投稿者びぎ
 お世話になっています。

データベースの更新(SQLServer2005)について
お聞きします。

ある伝票入力(行数が6行)のプログラムで、
処理区分が新規、修正、削除とあります。

新規はすなわちINSERT処理です、修正は行によってINSERTもUPDATEもDELETEもあります。
削除は全行DELETEです。

そこで、まず新規処理ですが
画面で入力した内容をSQLServerのテーブルにINSERTしたいのですが
みなさんは、このようなプログラムを作るとき

Datasetを使うのか、INSERTのSQLステートメントを実行させるのか
またDatasetを使う場合、どのような感じでコーディングしているのか
教えて頂けないでしょうか?

[ツリー表示へ]
タイトルRe: データベースの更新について
記事No6121
投稿日: 2007/08/22(Wed) 13:35
投稿者abi
> Datasetを使うのか、INSERTのSQLステートメントを実行させるのか
> またDatasetを使う場合、どのような感じでコーディングしているのか
> 教えて頂けないでしょうか?

普通に新規登録なら別DataSetを使わなくても問題は無いとおもいますが、
完全に新規ならDataSetを使用するメリットがありません。(仕様にもよりますが)

修正でならば・・・・DataSetを使用して仮想DBとして使っていけばいいですし・・・・

私ならば仕様に制限が無いならばそのままInsert文を使用しますね

[ツリー表示へ]
タイトルRe^2: データベースの更新について
記事No6122
投稿日: 2007/08/22(Wed) 16:46
投稿者びぎ
abiさん、貴重なご意見ありがとうございます。
確かに全くの新規の場合はinsertステートメントですよね。

では修正の場合ですが、データを取得し画面に表示した後
追加も削除もできるようにしたいのですが

この場合、動的配列に内容をセットし
更新は一旦データを全件削除し
動的配列から新規と同様にinsertステートを実行させようかと
思いますが、大胆すぎますか?

[ツリー表示へ]
タイトルRe^3: データベースの更新について
記事No6124
投稿日: 2007/08/22(Wed) 20:05
投稿者るしぇ
> この場合、動的配列に内容をセットし
何のために?
> データを取得し画面に表示した後
この時は何を使って表示してるの?DataTableにデータが入っている
と仮定して、動的配列に内容をセットしなおすのであれば無駄な処理では?
画面の表示に使ってるモノをそのまま使えばいいと思います。

> 更新は一旦データを全件削除し
つまり、変更点のみ3レコード更新すればいい処理で、10万件
削除の10万件挿入するということ?。。。無駄な処理では?

# 伝票入力(行数が6行)とは書いてあるけど、実際にどんな
# テーブルなのか伝わってこないので、一般的な処理を想定
# して回答してます。

例えば、今後何か別のシステムで対象のテーブルにフィールドが追加
されて、そこに重要な伝票番号が記録されたとして、こちらのシステム
では、そのフィールドに対応してないわけですが、更新のタイミングで
全件削除してしまう。。。そんな設計ボクならしないです、絶対。

[ツリー表示へ]
タイトルRe^3: データベースの更新について
記事No6128
投稿日: 2007/08/23(Thu) 09:09
投稿者abi
> では修正の場合ですが、データを取得し画面に表示した後
> 追加も削除もできるようにしたいのですが
>
> この場合、動的配列に内容をセットし
> 更新は一旦データを全件削除し
そういう運用方式もある間も知れませんが・・・・当然それって
ワークテーブルですよね?
まさかテーブル内の全データを削除・追加するなんてすごいことじゃないですよね?
もし、そういうことなら無駄すぎますので設計しなおしたほうがよろしいかと思います。
(何のためにUPDATE文があるのかを考えてください)

> 動的配列から新規と同様にinsertステートを実行させようかと
なせ動的配列なのか理解に苦しみます。
> 思いますが、大胆すぎますか?
大胆ではなく・・・・・設計がおかしいと思います(汗)
もし現役のSEがそんな設計をしてるのなら・・・・そんな人の下につきたくないなぁ・・

[ツリー表示へ]
タイトルRe^4: データベースの更新について
記事No6139
投稿日: 2007/08/23(Thu) 16:37
投稿者びぎ

  確かにその通りです。
動的配列は使う必要は、ありませんよね。

画面にセットしたDataSetを使います。

[ツリー表示へ]