Таблицы, созданные через DDL в UCanAccess, не могут быть открыты в самом Access.

Мне удалось успешно создать таблицы базы данных MS Access из Java с помощью драйвера UCanAccess 2.0.6. Однако впоследствии я не могу открыть таблицы из MS Access (Microsoft Office 2007, 64-разрядная версия Windows 7), при этом MS Access выдает ошибку:

Зарезервированная ошибка (-5001); сообщения об этой ошибке нет.

Точно такой же оператор CREATE TABLE при использовании из самого MS Access не вызывает проблем. Странная часть заключается в том, что таблицы успешно созданы, и данные могут быть успешно добавлены и получены по запросу. Итак, таблицы есть в базовой базе данных, но Access не может их открыть.

Если это поможет, один из операторов создания, которые я использую, выглядит следующим образом:

CREATE TABLE tblMain (
        ID COUNTER NOT NULL PRIMARY KEY, 
        Project INTEGER NOT NULL, 
        ItemNumber INTEGER NOT NULL, 
        DateCreated DATETIME NOT NULL, 
        ItemName TEXT NOT NULL, 
        ItemDescription MEMO NOT NULL, 
        OriginatorPerson TEXT NOT NULL, 
        DueDate DATETIME NOT NULL, 
        Closed YESNO NOT NULL, 
        ClosingComments MEMO NOT NULL, 
        Priority YESNO NOT NULL, 
        AssignedToCompany TEXT NOT NULL, 
        AssignedToPerson TEXT NOT NULL);

person user3670023    schedule 23.05.2014    source источник


Ответы (2)


Я не могу воспроизвести эту проблему ни с Access 2007, ни с Access 2010. Все отлично работает и с Access 2003. Но это может произойти с какой-то версией доступа... Это очень похоже на проблему, о которой сообщил другой пользователь в UCanAccess. форум и что я исправил (однако в этом случае я не смог воспроизвести эту проблему): http://sourceforge.net/p/ucanaccess/discussion/help/thread/5a57b955/.

Я почти уверен, что речь идет о том, как UCanaccess (используя базовый jackcess) сохраняет свойства столбца (например, значения по умолчанию, «требуемые» и т. Д.). Не могли бы вы попытаться повторно выполнить свой DDL, избегая установки «не нуля» там, где это не нужно, например, в идентификаторе столбца (счетчик и ПК)? И, пожалуйста, дайте мне знать о ваших выводах, у меня нет другого способа окончательно исправить эту ошибку.

person jamadei    schedule 24.05.2014

Возможно, вам нужно предоставить привилегии администратору:

GRANT SELECT, DELETE, INSERT, UPDATE
ON tblMain
TO Admin;

Запустите этот запрос с помощью драйвера UCanAccess 2.0.6.

person Ivan Cachicatari    schedule 23.05.2014