|
|
|
Обработка ошибок при вызове процедур MSSQL в PHP
|
|||
|---|---|---|---|
|
#18+
Пытаюсь разобраться как в php обрабатываются ошибки возникшие в ходе выполнения процедуры MS SQL Так понял, единств.средство из всех функций http://www.php.net/manual/ru/book.mssql.php получить ошибочное сообщение это ф-ия mssql_get_last_message(), однако не всегда достаточно той инф-ии что она дает, например если внутри процедуры идет insert дубликата в поле кот. primary key или скажем вставка NULL где поле not null, данная ф-ия возвращает просто "The statement has been terminated" ( хотя если используешь внутри процедуры конструкции try catch , вроде возвращается нужное сообщение ). Но , всеравно, хотелось бы получить сам числовой код ошибки. Единственное что пришло на ум, это передавать этот код в output параметр процедуры. Все работает (из того что испробовал), за исключением ошибки деления на ноль. Связываюсь с mssql из под linux используя FreeTDS тело процедуры Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. проверка выполнения с исп. утилиты tsql из пакета FreeTDS ( из под Linux ) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. работает. теперь напишем аналогичный вызов только на php Код: sql 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. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. выполняем Код: sql 1. 2. 3. 4. 5. 6. т.е. при вызове процедуры из php сист.переменная @@ERROR равнялась нулю. Почему? А может есть какие другие варианты получить код ошибки ? P.S. - CentOS release 6.2 ( 64 битн ) - freetds-0.91 - PHP 5.3.10 - Microsoft SQL Server 2008 (RTM) - 10.0.1787.0 (Intel X86) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2012, 12:19:29 |
|
||
|
|

start [/forum/topic.php?fid=23&gotonew=1&tid=1464562]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
23ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 286ms |

| 0 / 0 |
