|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
Ребят, приветствую! Подскажите пожалуйста: Есть набор запросов к MyTABLE (Id int, Colm int) в MS SQL, значения которых сформировал со страницы и записал все в один String. 1) Не могу понять как отследить ошибку, если хоть один запрос не прошел. Например ошибку с неверным типом данных во 2-ом insert. В данном случае не ругается ни на что, хотя запрос не прошел в БД ... Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... хотя если подавать только один запрос, то он ругнется Err: Microsoft SQL Server Native Client 10.0-->Error converting data type varchar to numeric.-->-2147217913 Код: vbnet 1.
2) Или тут стоит выполнять execute отдельно для каждого запроса и откатываться в случае возникновения ошибки? Аукнется на производительности?! 3) Есть ли механизм пакетной отправки запросов в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:21 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
mr_eas, по коллекции Errors коннекшиона "пройдись" после выполнения Код: vbnet 1. 2. 3.
пс автор Код: vbnet 1. 2. 3. 4. 5.
тут что-то не в порядке ... или ; должна быть между запросами, или перевод каретки А сейчас получается они "одной строкой" - сервер не мог такое выполнить ... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:30 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
mr_easЕсть ли механизм пакетной отправки запросов в БД? это и есть пакет. Пока единственное, что меня смущает - отсутствие пробела перед вторым инсертом, не скажу сходу, насколько это критично в данном случае. Второй delete выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:30 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
Shocker.Proэто и есть пакет.А что мешает явно завершать запросы стандартной точкой с запятой? Можно тогда не думать о переводах строк... и пробелы перестанут смущать заодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:43 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
AkinaShocker.Proэто и есть пакет.А что мешает явно завершать запросы стандартной точкой с запятой? Можно тогда не думать о переводах строк... и пробелы перестанут смущать заодно.А я долгое время и не знал, что ";" можно применять в TSQL (в отличие от MySQL, где это обязательно). Всегда обходился пробелом/переводом строки ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 15:47 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
Shocker.Pro, court сори! по поводу пробелов в конце строки с запросом не доглядел, там все норм в оригинале, это я тестовый пример тут от руки писал.. Так же я пробовал и ; в конце проставлять, все глухо по ошибкам( По поводу коллекции Errors - статус в случае не верного запроса - adStatusOK, в Err пусто. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
вывод в таком случае con.State: 1 Err.Count: 0 rows Affected: 0 если выполнять только не правильный запрос Код: vbnet 1. 2.
то вывод : con.State: 1 Err.Count: 1 rows Affected: 0 Error.Description: Error converting data type varchar to numeric. Error.Number: -2147217913 Error.Source: Microsoft SQL Server Native Client 10.0 Error.SQLState: 22018 Error.NativeError: 8114 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 16:00 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
а попробуй в самом начале запроса написать set nocount on ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 16:04 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
автора попробуй в самом начале запроса написать set nocount on Помогло, спасибо!! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 16:39 |
|
Выполнить набор delete и insert запросов в одном String
|
|||
---|---|---|---|
#18+
mr_easПомогло, спасибо!!Ага, рука теряет навык, сразу не вспомнил про этот нюанс. По идее, даже такая строка бы не сработала Код: vbnet 1.
потому что delete намусорит в вывод ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2018, 17:06 |
|
|
start [/forum/topic.php?fid=60&tid=2154982]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 412ms |
0 / 0 |