Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизСвойство IDENTITY Найти похожие ветки
← →
Patrick © (2004-04-14 11:36) [0]Добрый день! Вопрос таков : есть у меня таблица FUELS, в ней 2 поля FuelCode (tinyint) и FuelName (char(10)), у поля FuelCode стоит свойство IDENTITY, проблема состоит в том, что добавляя новую запись INSERT INTO FUELS (FUELNAME) VALUES ("Новое значение"), вылезает ошибка по поводу дублирования ключа, хотя в других таблицах, где вроде бы все также всё в норме.
← →
bushmen © (2004-04-14 11:46) [1]А у тебя не превышено ли значение на тип tinyint ?
← →
Patrick © (2004-04-14 11:56) [2]Это исключено, таблица пустая. А значения IDENTITY SEED и IDENTITY INCREMENT установлены в 1.
← →
clickmaker © (2004-04-14 12:00) [3]
> хотя в других таблицах, где вроде бы все также
Значит все-таки не все также
← →
A_N_D © (2004-04-14 12:04) [4]Поставь IDENTITY SEED
SELECT IDENT_CURRENT("FUELS")
← →
bushmen © (2004-04-14 12:05) [5]Попробуй выполнить insert из Query Analyser
И попробуй обнулить счетчик
dbcc checkident("MyTabel", reseed, 1)
← →
Patrick © (2004-04-14 12:18) [6]Счетчик, обнулял, а выполняя SELECT IDENT_CURRENT("FUELS") получил значение 0, разницей между данным случаем и другими работающими объектами является то, что там тип поля с IDENTITY не TINYINT, а INTEGER. Может в этом причина, хотя не должно быть.
← →
Nikolay M. © (2004-04-14 12:32) [7]Вместо того, чтобы устраивать ромашка "тоже - не тоже", лучше донеси народу мысль, чем оправдано использование в качестве IDENTITY именно типа tinyint?
← →
Patrick © (2004-04-14 13:18) [8]Так что же в этом кривого такого, ежели не давать юзеру самому заносить значение кода, а пусть при добавлении само формируется, мож я чего то не понимаю, ты уж просвети?
← →
bushmen © (2004-04-14 13:23) [9]А заменить на тин INTEGER трудно? Давно бы уже проверил.
← →
Patrick © (2004-04-14 13:33) [10]Поменял, ситуция та же, одну строчку добавляет нормально, а вторую ругается на дублирование ключа, такое впечатление, что счетчик не срабатывает.
← →
sniknik © (2004-04-14 13:40) [11]если счетчик не срабатывает значит это не счетчик, проверил с тиниинт все работает.
← →
31512 © (2004-04-14 13:42) [12]Для Patrick
У меня была такая проблема. Я ещё успешно разрешил
http://delphimaster.net/view/3-1080281412/
ОТКАЖИСЬ ОТ IDENTITY, ПОСКОЛЬКУ DB КОМПОНЕНТЫ ПРИНЦИНИАЛЬНО НЕ ПОНИМАЮТ, ЧТО ЭТО ТАКОЕ.
Или пытай Romkinа, который говорит, чту у него есть друг, которому удалось подружиться с identity.
← →
A_N_D © (2004-04-14 13:43) [13]А ты IDENTITY в Yes установил?
← →
bushmen © (2004-04-14 13:44) [14]>ОТКАЖИСЬ ОТ IDENTITY, ПОСКОЛЬКУ DB КОМПОНЕНТЫ ПРИНЦИНИАЛЬНО НЕ ПОНИМАЮТ, ЧТО ЭТО ТАКОЕ.
А какое отношение DB компоненты имеют к MSSQL ?
← →
31512 © (2004-04-14 13:47) [15]Для bushmen ©
Никакого, в том-то и дело. А тип identity есть только в MSSQL.
← →
sniknik © (2004-04-14 13:50) [16]люди! откровение века! на мерседесах ездить нельзя! у запорожцев тормоза неисправны.
← →
Ega23 © (2004-04-14 13:53) [17]ОТКАЖИСЬ ОТ IDENTITY, ПОСКОЛЬКУ DB КОМПОНЕНТЫ ПРИНЦИНИАЛЬНО НЕ ПОНИМАЮТ, ЧТО ЭТО ТАКОЕ.
Бред какой-то, прости меня Господи...
← →
Ega23 © (2004-04-14 13:53) [18]А ежели по-существу, то это сильный ход IDENTITY на tinyint ставить...
← →
31512 © (2004-04-14 13:55) [19]Ega23
Где ты был, дорогой, когда я с ним маялся?
http://delphimaster.net/view/3-1080281412/
← →
Patrick © (2004-04-14 13:58) [20]Да компоненты DB не причем, т.к. я всё в Enterprise"е делаю, без компонент Delphi.
← →
31512 © (2004-04-14 14:04) [21]Для Patrick ©
Тьфу, прости меня, не разобрался. Ну конечно! Только запросом записи вставляешь?
← →
Ega23 © (2004-04-14 14:27) [22]Где ты был, дорогой, когда я с ним маялся?
Ну читал я ту ветку, ещё тогда, в марте. Я не понял, почему "DB КОМПОНЕНТЫ ПРИНЦИНИАЛЬНО НЕ ПОНИМАЮТ, ЧТО ЭТО ТАКОЕ".
Вот уже 4 года базами занимаюсь и НИ РАЗУ проблем с IDENTITY не встречал. В смысле, программных проблем. Проблемы были, но логические.
А насчёт метода ApplyUpdates - никогда не пользовался. Ибо с сервером работаю ТОЛЬКО через SP.
← →
Ega23 © (2004-04-14 14:28) [23]Да компоненты DB не причем, т.к. я всё в Enterprise"е делаю, без компонент Delphi.
А как ты в Enterprise"е INSERT INTO ... делаешь, если не секрет?
← →
Patrick © (2004-04-14 14:54) [24]Какой же тут секрет, если есть там обычный SQL-редактор, когда открываешь таблицу (полный SELECT)
← →
bushmen © (2004-04-14 14:56) [25]А ты попробуй непосредственно вводить дданные в сетку Enterprise. Тоже ругаться будет. А через Query Analyser пробовал. И где просимая мной версия сервера?
← →
Patrick © (2004-04-14 14:58) [26]B еще дополнение,в один момент как бы всё нормализуется, после Disconnecta и снова Коннекта, и записи добавляются корректно, но стоит запустить климентское приложение, начинается та же фигня, и даже в Manager"е она не дает добавлять руками, пока снова не сделаешь Disconnect.
← →
bushmen © (2004-04-14 15:04) [27]Подождите, а Вы Enterprise Manager запускаете на клиенте, т.е. не с машины, на которой стоит SQL Server?
← →
sniknik © (2004-04-14 15:04) [28]климентское приложение виновато. не запускай.
← →
bushmen © (2004-04-14 15:07) [29]С какими компонентами ты работаешь в клиентском приложении? ADO или BDE ?
← →
Patrick © (2004-04-14 15:07) [30]MS SQL-2000, работаю на клиентской машине. и ругается даже тогда , когда работаю через обычную сетку ввода данных.
← →
Patrick © (2004-04-14 15:10) [31]Компоненты ADO пробовал, и ADO из библиотеки vg2lib (вроде как достаточно известная)
← →
bushmen © (2004-04-14 15:42) [32]А если запустить Enterprise Manager запустить на самом сервере?
← →
Ega23 © (2004-04-14 15:55) [33]Что-то здесь не так... В самом деле, чудес не бывает.
Попробуй чётко проперти таблицы посмотреть.
← →
Fay © (2004-04-14 16:46) [34]Проверь - что в ключе.
Проверь триггеры.
← →
paul_k © (2004-04-14 19:02) [35]1. а ключ не составной ли из нескольких полей?
2. см. 1
← →
Fay © (2004-04-14 19:06) [36]2paul_k © (14.04.04 19:02) [35]
>> 1. а ключ не составной ли из нескольких полей?
1. Так, конечно, бывает. Но identity - уже возможный ключ, поэтому хоть из 878 полей...
2. см. 3
3. см. 1
← →
sniknik © (2004-04-14 19:24) [37]> поэтому хоть из 878 полей...
особенно с tinyint у которого 255 максимум. ;)
← →
Fay © (2004-04-14 19:35) [38]2sniknik © (14.04.04 19:24) [37]
В случае с IDENTITY - это пофинг. Даже для tinyint 8)
А вот
Server: Msg 8115, Level 16, State 1, Line 6
Arithmetic overflow error converting IDENTITY to data type tinyint.
Arithmetic overflow occurred.
- это запросто.
← →
Patrick © (2004-04-15 15:07) [39]Добрый день! В продолжение вчерашней дисскурсии, наметился один момент, оказывается клиентская часть нипричем, т.к. экспериментирую чисто в Manager"е убираю свойство IDENTITY, сохраняю, заново ставлю это свойство, добавляю запись - работает,
INSERT INTO T1(F2) VALUES ("Новая строка"), в таблице 2 поля F1-integer (IDENTITY (1,1)) и F2 - char(20), добавляю еще запись - сообщение "дублирование ключа", опять изменяю свойство - картина повторяется, а у другой таблички - "структура почти такая же" - всё хорошо, может всё таки кто подскажет, в чем может быть дело?
что еще можно проверить, такое подозрение, что со счетчиком что-то неладное, таблица достаточно простая - никаких триггеров нет.
← →
bushmen © (2004-04-15 15:41) [40]>а у другой таблички - "структура почти такая же" - всё хорошо
А если таблицу "убить" и заново создать - глюк повторяется? А у тебя sp3 на SQL Server стоит?
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.035 c