Хороший вопрос, и я не уверен, что смогу полностью ответить на него.Вот несколько идей.
Sybase.py использует протоколирование.Убедитесь, что вы используете его.Чтобы «поднять» выход из системы, я бы сделал это:
import logging
logging.basicConfig(level = logging.INFO,
format = "%(asctime)s %(levelname)s [%(filename)s] (%(name)s) %(message)s",
datefmt = "%H:%M:%S", stream = sys.stdout)
log = logging.getLogger('sybase')
log.setLevel(logging.DEBUG)
И, очевидно (почему я не нахожусь ??), чтобы это работало в Sybase.py, вам нужно установить глобальный DEBUG=True
(см.строка 38)
Но тогда, если мы посмотрим на def execute
, мы увидим (как вы указали), что оно блокируется.Мы ответим на ваш вопрос.Вы не получите ничего обратно, потому что это блокирует это.Итак, как это исправить - напишите неблокирующий извинительный метод;) В examples / timeout.py есть несколько советов.Очевидно, кто-то еще столкнулся с этим, но на самом деле не исправил это.
Я знаю, что это, вероятно, не помогло, но я потратил 15 минут на поиск - я должен, по крайней мере, рассказать вам, что я нашел .. Вы могли бы подумать, что execute
даст вам немного result
- Подождите, чтоэто значение результата в строке 707 ??
while 1:
status, result = self._cmd.ct_results()
if status != CS_SUCCEED:
break
Если status! = CS_SUCCEED (который, как я полагаю, в вашем случае - True), можете ли вы просто увидеть, каков "результат"?Интересно, если они просто не смогли поднять результат как исключение?