У меня есть база данных MS Access (Access 2002, для записи). В нем есть столбец, имя которого содержит вопросительный знак, например, таблица «Users» со столбцами «uid» и «isAdmin?». Мне нужно подключиться к этой базе данных через ODBC и запросить этот столбец в следующих строках:
select [uid], [isAdmin?] from Users order by [isAdmin?];
Как мне избежать знака вопроса в имени столбца, чтобы драйвер ODBC для MS Access не считал его параметром запроса? Этот запрос не использует никаких параметров, поэтому хорошо, если я отключу их полностью.
Некоторые ограничения:
- Я не могу легко изменить имена столбцов.
- Я не могу легко использовать что-то другое, кроме ODBC, для подключения, хотя, возможно, это мой запасной план, если я не могу заставить ODBC вести себя.
- Я не могу просто сказать
select * from Users
- он по-прежнему задыхается от порядка (что сложно в реальном запросе, поэтому действительно нужно делать в SQL).
Вещи, которые я пробовал, которые не работают:
select [uid], '[isAdmin?]' from Users;
- второй столбец становится строкой "[isAdmin?]"
select [uid], ['isAdmin?'] from Users;
select [uid], [isAdmin\?] from Users;
select [uid], [isAdmin\?] {escape '\'} from Users;
- и никакой другой escape-символ не работает.
select [uid], { [isAdmin?] } from Users;
РЕДАКТИРОВАТЬ : Я должен был уточнить, я не могу легко изменить базу данных вообще, кроме как через ODBC (или ADO или DAO или что-то еще, но это будет немного сложно, и в этот момент я могу просто выполнить запрос через них).