2016-12-26 8 views
0

Я использую pyodbc 3.0.10 и PostgreSQL 9.6, используя собственный драйвер odgc Postgre (Postgre Unicode (x64)). Я создал таблицу тестовБулевы Postgre и pyodbc несовместимы?

create table test (col boolean) 

И я попытался вставить булевский язык Python. Я не вижу, какая замена параметров была выполнена, но не похоже, что pyodbc работает со всеми типами Postgre?

In [3]: cur = cxn.cursor() 

In [4]: cur.execute('insert into test values (?)', (True,)) 
--------------------------------------------------------------------------- 
ProgrammingError       Traceback (most recent call last) 
<ipython-input-4-5a0edc50457d> in <module>() 
----> 1 cur.execute('insert into test values (?)', (True,)) 

ProgrammingError: ('42804', '[42804] ERROR: column "col" is of type boolean but 
expression is of type "char";\nError while preparing parameters (1) (SQLExecDirectW)') 
+0

Попробуйте добавить '; BoolsAsChar = 0 'до конца строки подключения ODBC. Кажется, это устранило проблему для меня. –

+0

Это сработало, спасибо! – swmfg

ответ

1

Как Горд Томпсон отметил выше, все, что вам нужно сделать, это добавить ;BoolsAsChar=0 в строке подключения

 Смежные вопросы

  • Нет связанных вопросов^_^