Команда ODBC не выдает ошибку - PullRequest
0 голосов
/ 05 июня 2009

Я работаю над исполняемым файлом VB6, который использует ODBC для обновления таблицы DB2. При попытке обновить несуществующую строку программа не выдает ошибку, как ожидалось. Почему это случилось?

objAdoConn.Execute("Update T1234 Set A = 'X' Where B = 'y'");

Ответы [ 3 ]

3 голосов
/ 05 июня 2009

Потому что это допустимый оператор SQL, в результате которого "затронуты 0 строк" Что является успехом.

3 голосов
/ 05 июня 2009

С точки зрения SQL, в этой команде нет ничего плохого - она ​​просто ничего не обновляет, что является вполне допустимым результатом.

2 голосов
/ 05 июня 2009

Ответы other верны: это действительный оператор SQL, который не влияет ни на какие записи. Если вы хотите узнать, какое количество записей затронуто, используйте необязательный параметр RecordsAffered , например:

Dim n As Long
objAdoConn.Execute("Update T1234 Set A = 'X' Where B = 'y'", n)
If n=0 Then MsgBox "No records affected!"
...