|
Ошибка sql | ☑ | ||
---|---|---|---|---|
0
log
04.02.13
✎
09:42
|
ADO: [-2 147 217 873].{Microsoft OLE DB Provider for SQL Server}: Violation of UNIQUE KEY constraint 'IX_MenuItemsVer'. Cannot insert duplicate key in object 'MenuItemsVer'.
"ВыполнитьЗапрос" (SMS) (S:150600) ADO: [-2 147 217 873].{Microsoft OLE DB Provider for SQL Server}: The statement has been terminated. "ВыполнитьЗапрос" (SMS) как такое лечить? |
|||
1
МихаилМ
04.02.13
✎
09:44
|
или проверять , есть ли уже запись, или написать обработчик ошибок.
|
|||
2
ДенисЧ
04.02.13
✎
09:44
|
"Cannot insert duplicate key in object 'MenuItemsVer'. "
Судя по, это не 1с-база. Так что... Искать дубли, чистить... |
|||
3
isarzh
04.02.13
✎
09:45
|
(1) уже существует ключ либо убрать уникальность из таблицы
|
|||
4
sapphire
04.02.13
✎
09:46
|
(0) Млин, а подумать уже нечем?!
Запись с такими ключевыми полями уже существует. |
|||
5
log
04.02.13
✎
09:47
|
(3) а как это сделать на sql2000 ?
|
|||
6
sda553
04.02.13
✎
09:47
|
(0) У меня нет под рукой 1Ски, просто расскажите что это за таблица MenuItemsVer и по каким полям этот ключ?
|
|||
7
sapphire
04.02.13
✎
09:48
|
(5) Использовать UPDATE if @@ROWCOUNT=0 INSERT
|
|||
8
isarzh
04.02.13
✎
09:48
|
(5) а вообще задача какая?
|
|||
9
log
04.02.13
✎
09:52
|
(8) избавиться от этой ошибки
|
|||
10
log
04.02.13
✎
09:53
|
(6) таблица справочника, как посмотреть по каким полям ключ?
|
|||
11
eklmn
гуру
04.02.13
✎
09:55
|
ТиИ запусти и не лазий руками, если даже ошибку не в состоянии понять был
|
|||
12
sapphire
04.02.13
✎
09:55
|
(10) Посмотреть глазами, или запросом
|
|||
13
sapphire
04.02.13
✎
09:55
|
(11) Давай, до свиданья (с)
|
|||
14
eklmn
гуру
04.02.13
✎
09:57
|
(13) ну ну
|
|||
15
sapphire
04.02.13
✎
09:59
|
(14) Баранки гну, (0) почитай внимательно.
|
|||
16
sapphire
04.02.13
✎
10:08
|
(0) Покажи как INSERT выглядит.
в (7) идея в следующем: Функция SQL @@ROWCOUNT возвращает число строк, затронутых при выполнении последней инструкции, тогда UPDATE MenuItemsVer SET {чего INSERT-им} // Пытаемся обновить запись IF @@ROWCOUNT=0 // Ни одной записи нет, значит можно вставить новую запись INSERT MenuItemsVer VALUES()... |
|||
17
sda553
04.02.13
✎
10:10
|
(10) Речь про восьмерку? Тогда таюлицы справочников там выглядят как _ReferenceXXXX
где ХХХХ номер справочника |
|||
18
eklmn
гуру
04.02.13
✎
10:13
|
(15) да сорри, там походу вообще не 1С ))
|
|||
19
МихаилМ
04.02.13
✎
10:14
|
(16)
Ваш алгоритм расчитан на вставку одной записи. |
|||
20
log
04.02.13
✎
10:30
|
а выгрузить-загрузить поможет?
|
|||
21
sapphire
04.02.13
✎
10:32
|
(19) Покажите, как Вы поточный INSERT из ADO DB сделаете :)
Конечно, это возможно, но, скорее всего, ТС делает INSERT по одной записи. |
|||
22
МихаилМ
04.02.13
✎
11:14
|
(21)
ado db (wiki:ADOdb) или ado ? для ms sql 2000 ole db реализован ~ на половину. сответственно не уверен, что поддерживается вставка и обновление. ado не люблю и не использую. для mssql 2005 выше под рукой ole db кода нет. "поточный INSERT" - сомнительный термин, хотя понятный. |
|||
23
sapphire
04.02.13
✎
11:18
|
(22) Речь идет об вставке из RECORDSET, т.е. вставить много записей можно либо текстом, либо через RECORDSET.
Разницу мне между ADO & ADODB расскажи, плиз, коле не влом :) |
|||
24
МихаилМ
04.02.13
✎
11:21
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |