Использование зарезервированного Word TimeStamp в качестве имени поля (Firebird 2.5) - PullRequest
4 голосов
/ 26 ноября 2009

Я расширяю уровень данных существующего приложения для работы с Firebird 2.5, в дополнение к MSSQL и SQLite, но столкнулся с камнем преткновения.

У меня есть поле с именем TimeStamp, в котором данные / время хранятся как тип TimeStamp. Это прекрасно работает в MSSQL и SQLite, где типом является datetime, но не работает в Firebird. Следующий SQL:

SELECT SysTrnId,'TimeStamp' from "TRANSACTIONS"

вроде бы работает, но поле TimeStamp возвращается как имя поля «CONSTANT», а содержимое - это текст «timestamp»

Возможно ли это сделать в Firebird или мне придется переименовать поле и изменить код в других слоях данных.

Ответы [ 2 ]

9 голосов
/ 26 ноября 2009

Символ выхода firebird - двойная кавычка ". Обратите внимание, что в Firebird, если у вас есть поле, которое вы должны экранировать двойными кавычками, оно также становится чувствительным к регистру. Таким образом, если вы объявили свое поле как TimeStamp, то select "TIMESTAMP" ... завершится ошибкой с ошибкой не найденного поля.

1 голос
/ 26 ноября 2009

Понятия не имею, работает ли он, но вы пробовали двойные кавычки вокруг "TimeStamp", одинарные кавычки обычно указывают на постоянную строку.

Привет
K

...