Я использую pyodbc для связи с устаревшим файлом Access 2000 .mdb.
У меня есть курсор, и я пытаюсь выполнить это:
c.execute("INSERT INTO [Accounts] ([Name], [TypeID], [StatusID], [AccountCat], [id]) VALUES (?, ?, ?, ?, ?)", [u'test', 20, 10, 4, 2])
Однако в результате
pyodbc.Error: ('HYC00', '[HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented (106) (SQLBindParameter)')
Я понимаю, что могу просто поменять вопросительные знаки на буквальные значения, но по моему опыту правильное экранирование строк в базах данных ... не очень красиво.
PHP и mysql объединяются, чтобы собрать mysql_real_escape_string
и друзей, но я не могу найти функцию pyodbc для экранирования значений.
Если бы вы могли сообщить мне, каков рекомендуемый способ вставки этих данных (из python), это было бы очень полезно. В качестве альтернативы, если у вас есть функция python для экранирования строк odbc, это также было бы здорово.