ODBCを使用してDB2テーブルを更新するVB6実行可能ファイルで作業しています。存在しない行を更新しようとすると、プログラムは予期したとおりにエラーをスローしません。なぜこれが起こるのだろうか?ODBCコマンドでエラーがスローされない
objAdoConn.Execute("Update T1234 Set A = 'X' Where B = 'y'");
ODBCを使用してDB2テーブルを更新するVB6実行可能ファイルで作業しています。存在しない行を更新しようとすると、プログラムは予期したとおりにエラーをスローしません。なぜこれが起こるのだろうか?ODBCコマンドでエラーがスローされない
objAdoConn.Execute("Update T1234 Set A = 'X' Where B = 'y'");
有効なSQL文であるため、「影響を受ける行が0件」になるためです。それは成功です。
SQLの観点からは、このコマンドに何も問題はありません。何も更新されず、完全に有効な結果です。
otheranswersは正しいです。これは有効なSQL文で、レコードには影響しません。影響を受けるレコードの数を知りたい場合は、次のようにオプションのRecordsAffected parameterを使用してください:
Dim n As Long
objAdoConn.Execute("Update T1234 Set A = 'X' Where B = 'y'", n)
If n=0 Then MsgBox "No records affected!"
これが理由です – tekBlues