Существует два возможных преобразования строки в числовой код в отображаемом SQL.
- Преобразование
'1'
в тот же тип, что и sid
.
- Преобразование значения, переданного в качестве заполнителя (переменная
price
, которая подставляется вместо ?
).
Какое значение в price
? Как Python печатает свое значение как?
Informix довольно гибок в выполнении преобразований для вас, поэтому первое преобразование должно быть в порядке. Как правило, вы можете указывать одинарные кавычки только в том случае, если sid
является строковым столбцом, но он должен хорошо преобразовываться.
Итак, другая проблема: что делает PyODBC с price
?
Возможно, вы сможете увидеть, что произойдет, если вы установите переменную среды SQLIDEBUG=2:xyz
и запустите программу. Он сгенерирует файл с префиксом xyz_
, который можно обработать с помощью sqliprint
, если он вам доступен. Это скажет вам, что отправляется между клиентом (Python) и сервером данных. В зависимости от того, что вы найдете, он может указывать пальцем на код на стороне клиента или код на стороне сервера.