Я пытаюсь выполнить следующий параметризованный SQL-запрос, используя соединение ADO через пакет adodbapi, и получаю
Недопустимое имя типа
ошибки базы данных, которые я не могу решить.
cursor.execute("SELECT * FROM ?", ["Compound"])
Это приводит к следующей ошибке:
Ошибка базы данных: (-2147352567, «Произошло исключение.», (0, «Поставщик Microsoft SQL Server Compact OLE DB», «Недопустимое имя типа.», Нет, 0, -2147217872), Нет)
Команда:
SELECT * FROM ?
Параметры:
[Имя: p0, Dir.: Input, Type: adBSTR, Size: 8, Value: "Compound", Precision: 0, NumericScale: 0]
Я предполагаю, что Type name is invalid.
и Type: adBSTR
являются ключевыми компонентами сообщения, но я не могу найти информацию об этом типе данных, кроме строки символов Юникода, заканчивающейся нулем.
Я пробовал разные кодировки строк, такие как
[r"Compound"]
[b"Compound"]
[u"Compound"]
И запрос отлично работает с обычной строкой:
cursor.execute("SELECT * FROM Compound")
Действительно ли это связано с типом параметра или, возможно, реализацией paramstyle qmark?