Я использую ADO для подключения к серверу SQL от cherrypy. Где я должен поставить:Где я могу поставить CoInitialize?
pythoncom.CoInitialize()
внутри __init__ или внутри метода индекса, где выполняется GET?
Спасибо!
Я использую ADO для подключения к серверу SQL от cherrypy. Где я должен поставить:Где я могу поставить CoInitialize?
pythoncom.CoInitialize()
внутри __init__ или внутри метода индекса, где выполняется GET?
Спасибо!
См. MSDN для информации COM. Вы должны называть его один раз для каждого дополнительного потока в приложении, поэтому я думаю, вам нужно либо взломать пул потоков, либо установить флажок в потоке, если COM инициализирован. Обратите внимание: вы должны позвонить CoUninitialize()
, когда поток завершается, и это еще одна проблема, которую вы не можете решить с помощью флага.
Или вы могли бы использовать другой БД, например pyodbc - он, похоже, не использует COM.
Спасибо, что посмотрел нить -local flag.Невероятно, что даже когда я вынимаю все вызовы CoInitialize, сервер CherryPy отлично работает, и данные на все работают. Похоже, они не требуются. – MobileGuy
Ну, COM может делать неприятные вещи для вашего приложения, если вы не делаете это правильно, поэтому убедитесь, что вы его запустили, если ваша библиотека lib не делает этого. – jwalker