Я использую
- Сертификат Asterisk/16.8-cert2
- MSSQL экспресс 2014
- UnixODBC 2.3.1
- фритс v1.1.20
- Луа 5.1.4
- CentOS7
Я делаю оператор обновления в SQL с помощью func_odbc.so. Оператор обновления работает нормально, без проблем. но я хочу, чтобы у меня была возможность поймать ошибку, если она произойдет, например, отключение или прерывание сети.
Вот мое заявление об обновлении
UPDATE Customers SET AccountBalance = AccountBalance - ${VAL1} WHERE cif = ${ARG1}
Мой вызов функции dialPlan (в extension.lua)
local statues = channel.ODBC_ErrorTest(1499):set(10)
Одна из вещей, которую я могу заставить это работать, - это добавить блок TRY и CATCH в сам оператор SQL, как показано ниже, поэтому, если есть ошибка, он вернет номер ошибки.
BEGIN TRY
UPDATE Customers SET AccountBalance = AccountBalance - a WHERE cif = 17399
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber
END CATCH
Но когда я пытаюсь выполнить это, он не возвращает мне номер ошибки, когда есть ошибка, просто возвращает пустую строку.
Итак, мой вопрос прост, как справиться с ошибкой SQL из абонентской группы?
local statues = channel.ODBC_ErrorTest(1499):set(10)
, но на самом деле я должен проверить переменную канала `localstatus=channel.ODBCSTATUS:get()`. Тк очень много 02.06.2020