VB2008+Access2003でプログラムを組んでいます。
VB2008の経験は2年位です。
MDBテーブルへの削除・更新処理で疑問がわいてきましたので質問いたします。
ご回答よろしくお願いいたします。
MDBへの接続処理は省略しています。
下記のトランザクション処理で正常に削除・更新されますが
Disposeしないコマンド(Cmd42)の使い回しに問題はありませんか?
Dim Cn As New OleDb.OleDbConnection
Dim RsTran As OleDb.OleDbTransaction
Try
RsTran = Cn.BeginTransaction
Me.Cmd42 = Cn.CreateCommand
Me.Cmd42.Transaction = RsTran
Me.Cmd42.CommandText = "DELETE * FROM 売上テーブル " _
& " Where (MitumoriNo = '" & Insatu_MitumoriNo & "') "
Me.Cmd42.ExecuteNonQuery()
Me.Cmd42.CommandText = "DELETE * FROM 売上サマリーテーブル " _
& " Where (MitumoriNo = '" & Insatu_MitumoriNo & "') "
Me.Cmd42.ExecuteNonQuery()
Me.Cmd42.CommandText = "DELETE * FROM 請求合計テーブル " _
& " Where (MitumoriNo = '" & Insatu_MitumoriNo & "') "
Me.Cmd42.ExecuteNonQuery()
Me.Cmd42.CommandText = "UPDATE 見積書テーブル " _
& " SET KousinDay='" & dumy & "' " _
& " Where (MitumoriNo = '" & Insatu_MitumoriNo & "') "
Me.Cmd42.ExecuteNonQuery()
RsTran.Commit()
MessageBox.Show(Me, "削除しました")
Catch ex As Exception
RsTran.Rollback()
MessageBox.Show(ex.Message)
Call 終了処理()
End Try
Me.Cmd42.Dispose()
RsTran.Dispose()
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> Disposeしないコマンド(Cmd42)の使い回しに問題はありませんか?
動けばいいのであれば、「正常に削除・更新されます」という答えが出ていますね。
品質の観点から問題はあるでしょう。
(1)関数の外で宣言した変数を使いまわしている。
変数のスコープが適切でない。
42が意味不明。
(2)インスタンスを使いまわして、ExecuteNonQueryを4回実行している。
気持ち悪いけど、MSDNにサンプルが載っているし問題ないのかな?
当方では、Commandのインスタンスを使いまわすことはしません。
http://msdn.microsoft.com/ja-jp/library/2k2hy99x …
http://ja.wikipedia.org/wiki/ソフトウェア品質
No.1
- 回答日時:
Me.Cmd42 = Cn.CreateCommand
で「新しいcommandのインスタンス」が作られるので、使い回しているわけではありません。
ですけど、cmd42をメンバ変数として定義する意味ってあります?
ローカル変数で十分だと思うのですが
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- その他(生活家電) 僕は今でもMDコンポで、MDをかけているんですが、今の時代MDをかける家庭はとても少ないのでしょうか 11 2022/08/11 08:38
- iPod・ウォークマン・音楽プレーヤー 正常動作するポータブルMDプレーヤー 5 2023/08/17 22:02
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- CM 昔のCMの、BGMの質問です。 MDに入ってた曲がキリン生茶のCMで使われていたもので曲名が分かりま 2 2023/08/18 15:00
- Oracle SQL update方法 2 2022/06/22 14:07
- スピーカー・コンポ・ステレオ 僕はMDコンポでMDを 9 2023/05/20 04:28
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- iPod・ウォークマン・音楽プレーヤー ポータブルMDプレーヤーの中古品は、ハードオフで売っていますか。 ポータブルMDプレーヤーの中古品は 5 2023/02/04 08:14
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AccessからExcelへエクスポート...
-
VBとアクセスでSQL文に変...
-
手動または分散トランザクショ...
-
ACCESS2010 実行時エラー 2766
-
『列名 '担当者CD' があいま...
-
DataGridViewに複数テーブルの...
-
CSVファイルのエクスポートでソ...
-
ExcelVBAからAccessMDB内のテー...
-
SQLを発行とは?クエリの作成と...
-
他のMDBのテーブルに追加したい
-
VB.NET データセットとADOレコ...
-
HTMLのテーブルの行数が多くな...
-
Accessのフォームでリス...
-
アクティブレポートを使ってDB...
-
C# OleDbDataAdapter.Fillメソ...
-
Accessで別mdbのテーブルをコピー
-
VB.NETからAccess内のデータベ...
-
VBでコンボボックスとテキスト...
-
.net 複数の主キーを設定する方法
-
VBでルックアップテーブルを作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBとアクセスでSQL文に変...
-
Accessで別mdbのテーブルをコピー
-
『列名 '担当者CD' があいま...
-
CSVファイルのエクスポートでソ...
-
AccessからExcelへエクスポート...
-
エクセルのテーブルを解除する...
-
手動または分散トランザクショ...
-
他のMDBのテーブルに追加したい
-
HTMLのテーブルの行数が多くな...
-
SQLを発行とは?クエリの作成と...
-
WORD VBA プログラム修正をお願...
-
ACCESS2010 実行時エラー 2766
-
Excel複数シートをaccessへ一括...
-
ACCESSのテーブル名をリストに...
-
アクセステーブル、リンクとロ...
-
.net 複数の主キーを設定する方法
-
MDBテーブルへの追加変更を教え...
-
Accessで宛名ラベルに同一宛先...
-
DataGridの中身をDataSetにテー...
-
COBOLのINVALID KEYが理解でき...
おすすめ情報