Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-1083169178
Svetka*
2004-04-28 20:19
2004.05.16
??????????


1-1082988932
TankMan
2004-04-26 18:15
2004.05.16
Ну не могу я разобратся с TImageList... :(


7-1080525247
Зафигаренная шашка
2004-03-29 05:54
2004.05.16
Скины поверх винды


1-1083219729
Goida
2004-04-29 10:22
2004.05.16
Использование DLL из C++ в Delphi


14-1082789040
Инкогнито
2004-04-24 10:44
2004.05.16
Истинная сущность человека, или что значит быть Человеком!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский