Создание таблицы в NexusDB с немецкими умлаутами?
Я пытаюсь импортировать CREATE TABLE
заявление в NexusDB.
Имя таблицы содержит некоторые немецкие умляуты, а также некоторые имена полей, но я получаю сообщение об ошибке, что в моем утверждении были некоторые недопустимые символы (очевидно, умляуты...).
Мой вопрос сейчас: может кто-нибудь дать решение или какие-либо идеи для решения моей проблемы?
Нелегко просто изменить умлауты на эквивалентные термины, такие как ä
-> ae
или же ö
-> oe
поскольку наше приложение имеет фиксированные имена таблиц, которые каждый клиент использует в настоящее время.
1 ответ
Не следует использовать символы вне того, что обычно разрешено в стандарте SQL. Это укусит вас не только в NexusDB, но и во многих других базах данных. Обратите особое внимание на то, что существует большая вероятность того, что вы также столкнетесь с проблемами, когда захотите получить доступ к данным через ODBC и т. Д., Поскольку в других средах также могут быть аналогичные стандартные ограничения. Я настоятельно рекомендую избегать использования символов за пределами стандарта именования SQL для таблиц, независимо от того, какая база данных используется.
Однако... сказав все это, учитывая, что NexusDB является одной из самых гибких систем баз данных для программиста (она поставляется с полным исходным кодом), уже есть решение. Если вы добавите определение "extendedliterals" в ваш проект сервера базы данных, тогда большой массив символов будет считаться допустимым. Для точного изменения, которое это включает, смотрите константу nxcValidIdentChars в модуле nxllConst.pas. Константа также может быть изменена при необходимости.