Помощник по миграции для Access по умолчанию будет иметь размер до более новых столбцов datetime2.
Если вы продолжаете использовать стандартный (устаревший) SQL-драйвер с доступом или сказать кристальные отчеты как клиент для SQL-сервера, тогда все такие столбцы будут возвращены как STRINGS при использовании более старого драйвера.
два решения я хотел бы предложить, таким образом, является:
One: Re-перенести данные и таблицы снова, но прежде чем вы вверх размера данных изменить отображение полей в СГМЕ использовать старый формат DATETIME в отличие от datetime2.
2: Не используйте устаревший драйвер ODBC. Используйте собственный драйвер 10 или 11, и, таким образом, столбцы datetime2 будут возвращены как фактические столбцы времени даты с драйвером ODBC. Единственным недостатком этого предложения является то, что эти родные драйверы SQL 10 или 11 НЕ установлены по умолчанию, поэтому люди часто используют старые устаревшие драйверы для простоты распространения, особенно для интерфейсов Front Access, которые подключаются к SQL-серверу. И, честно говоря, старый старый драйвер SQL ОЧЕНЬ старый - поэтому в общем мы рекомендуем использовать родной драйвер 11 в эти дни.
При использовании встроенных драйверов 10 или 11 эта проблема будет устранена, эти драйверы должны быть установлены на каждой рабочей станции. Поэтому использование новых драйверов SQL с кристаллом поможет решить эту проблему.
Было бы НЕПРАВИЛЬНЫм глупо начинать писать пользовательские запросы и просматривать сторону SQL-сервера, чтобы «конвертировать» столбцы date/time2 в старый формат даты и времени в каждом запросе - я бы сильно проигнорировал такие предложения, которые плавают здесь. CR может работать и использовать datetime2 - но не при использовании старого драйвера SQL - просто примените родные драйверы, и эта проблема исчезнет.
Исправить отчет, не разбивать базу данных. Это 100% ошибка в Crystal Reports или проблема в самом отчете. Хотя мне трудно поверить, что Crystal Reports не может обрабатывать тип данных, который существует в течение 8 лет. Возможно, вы используете очень старую версию CR? –
@PanagiotisKanavos Мне нужны они в качестве полей даты в отчете. Как бы то ни было, он преобразует их в строки, что создает проблемы для формул и форматирования. – David
Как я уже сказал, мне очень, очень и очень сложно поверить, что любая текущая версия CR не понимает 'datetime2'. Возможно, потребуется изменить строку * format * или изменить тип поля, но это должно быть так. Какую версию ты используешь? –