Почему MS Access 2007 не разрешает вставку строки, а затем разрешает ее при следующей попытке вставки?
моя инструкция insert:
INSERT INTO myTable (inst_id,user_id,app_id,type,accessed_on)
VALUES (3264,2580,'MyApp','Renew',Now);
...где все значения отформатированы правильно. Таблица имеет вышеуказанные поля и одно другое, длинное поле ключа автоматического приращения int. Внешними ключами являются "inst_id", "user_id" и "app_id".
я получаю эту ошибку из Access:
...и следующая ошибка от VS 2005, когда она ошибается:
6 ответов
здесь идет какая-то старая память...
попробуйте добавить поле timestamp в таблице.
Я не могу точно вспомнить, почему это работает - что-то связано с доступом, имеющим трудности с идентификацией записей / возможно, какой-то блокировкой или индексированием причуды. Я провел некоторое исследование по этому вопросу несколько лет назад, когда это случилось с одним из моих столов.
ключ нарушении ошибка относится к не отсутствует ключ в другой таблице, это дублировать ключ в одной таблице. Иногда Access получает скрещенные провода и думает, что ключ, который он назначает новой записи, уже назначен другой записи в таблице. Я не знаю, почему это происходит. Но, помещая поле timestamp в таблицу, это заставляет Access думать по-другому.
Это разочаровывающее исправление, потому что я не знаю, почему оно работает. И теперь у меня есть бесполезное поле метки времени в моей таблице. Но пусть будет так.
MS-Access, как известно, блевотина до ложных ошибок, которые не имеют ничего общего с проблемой они сообщают. Не помешало бы окружить столбец под названием "type" скобками, [type].
вставить в myTable (inst_id, user_id, app_id, type, accessed_on) Значения (3264,2580, 'MyApp','Renew', Now);
Вы можете просто проверить это с accessed_on тип данных и теперь тип
измените тип значения DateTime на String при вставке, что будет хорошо.
дайте мне знать, если это работает для вас.
спасибо
удовлетворить даже самых взыскательных
Я считаю, что Jet / ACE не поймет метод NOW ().
и я работал с версией ACE, синтаксис не мог работать. Нужно найти другой способ для прямой реализации синтаксиса.
Я знаю давно, у меня были проблемы similuar. В моих случаях я получал ту же ошибку, но у меня не было уникальных индексов в таблице. Я, наконец, решил его восстановление и сжатие базы данных.