нарушение ограничения первичного ключа. Не удается вставить дубликат ключа в объект с помощью ADO - PullRequest
0 голосов
/ 09 апреля 2010

мы работаем над приложением для пользователей, используя Access2003 (VBA) в качестве языка программного обеспечения и SQL Server 2005 в качестве базы данных. Мы используем метод ADO, и мы столкнулись с проблемой. когда пользователи создают новую запись на экране ADO и хотят сохранить запись после ее реализации, они получают эту ошибку: ошибка -2147217873 нарушение ограничения первичного ключа 'PK_'. Невозможно вставить повторяющийся ключ в объект 'Pk _...' Любая помощь будет оценена Заранее спасибо

Ответы [ 5 ]

4 голосов
/ 09 апреля 2010

Проблема возникает, поскольку у вас не может быть двух первичных ключей с одинаковым значением.

Если вы используете Ints в качестве первичного ключа, не забудьте установить автоинкремент. Если вы используете GUID в качестве первичного ключа, вы можете забыть установить guid на другое значение, отличное от пустого guid по умолчанию, и попытаться дважды вставить и очистить guid.

0 голосов
/ 21 июня 2012

получите свойство столбца первичного ключа и установите для свойства идентификатора значение YES

0 голосов
/ 10 апреля 2010

Вы должны создать значение PK либо из своего кода, либо со стороны SQL. На стороне SQL при создании базы данных вы должны указать, что значением по умолчанию для поля «myPrimaryKey» является uniqueIdentifier, а из кода вы можете получить что-то вроде

myRecordset.fields("myPrimaryKey") = stGuidGen()

(отметьте здесь для функции stGuidGen)

У каждого метода есть свои плюсы и минусы. Реализуя метод SQL, вам больше не нужно заботиться о создании PK. Делая это с помощью кода, вы можете сохранить вновь сгенерированное значение без необходимости запрашивать базу данных и сразу же повторно использовать его в своем коде, и это может быть очень полезно.

0 голосов
/ 09 апреля 2010

Убедитесь, что ведьма - ваш PrimaryKey. Если вы пытаетесь вставить значение, которое уже существует, вы получаете эту ошибку.

0 голосов
/ 09 апреля 2010

Вы пытаетесь вставить новую запись с полем первичного ключа, значение которого уже находится в базе данных. Поле первичного ключа всегда должно содержать уникальные значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...