Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Всем привет! Сделал несколько Sequence в базе, но они вроде нормально считают, потом бам и перескочат на 5 или 10. Думал может в кэше дело, но его изменение не помогло. Как победить проблему не меняя структуры таблиц? Заранее спасибо! |
10 апр 15, 07:35 [17496725] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
FOGOT-BAstA, с базой-то, небось, много народа работает? Что же удивительного, что "перескочит"? |
10 апр 15, 09:07 [17496836] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Максимальное число 8 человек и то они раз в день введут. В таблицы содержащие sequence ввожу только я... |
10 апр 15, 11:09 [17497410] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8300 |
FOGOT-BAstA, Кэш теряется при аварии сервера или его перезагрузке. Больше никак не должен. |
10 апр 15, 11:16 [17497462] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
И что, все ваши "ввожу" всегда успешны ? Вы наверное тоже отслеживаете " бам и перескочат" по имеющимся записям в таблице ? ЗЫ When created with the CACHE option, an unexpected shutdown (such as a power failure) may result in the loss of sequence numbers remaining in the cache. |
||
10 апр 15, 11:19 [17497483] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
а таблицы вообще при чем. вы запрещали остальным трогать sequence? вот я просто так могу завызываться: select next value for dbo.Seq1 go 1000 без всяких таблиц, просто так. мне, может, делать нЕчего. вы вот сделайте абсолютно всем deny update on object::dbo.Seq1 и тогда точно спрашивать можно будет только с себя |
||
10 апр 15, 11:35 [17497647] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
КЭШ я отключил вообще, без него тоже скачет. Таблицы причем - последовательность растет при добавлении записи функцией (NEXT VALUE FOR [CounterRemont]) Запрещать наоборот не надо. Но ввожу точно только я один, я это вижу по количеству записей. ЗЫ: база на виртуальном серваке и она не выключается. хотя sequence все ровно без кэша - влиять не должно. |
||||
10 апр 15, 12:01 [17497848] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Какое отношение значение поля в таблице имеет к тому, что "SEQUENCE постоянно прыгает" ? |
||
10 апр 15, 12:03 [17497868] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
это функция прибавления значения последовательности... |
||||
10 апр 15, 12:10 [17497922] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
у вас не получилось запустить мой код??? там НЕТ никаких таблиц. еще раз: если у кого-то есть права, то почему не заюзать чужой сиквенс-то? ну вы его завели для своих таблиц, а тут прихожу я. вижу сиквенс и просто так получаю себе значения. низачем. ни для чего. а может и "для чего", только вы об этом не узнаете. от таких как я защита одна -- отобрать права. вы никогда не узнаете, кто же это наполучал себе значения и куда их дел, сиквенс не привязан ни к какой таблице |
||
10 апр 15, 12:12 [17497933] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Вы вопрос поняли ? Почему вы определяете, как изменялся SEQUENCE, по записям в талице ? |
||
10 апр 15, 12:12 [17497938] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Я понял в приципе любой может ей воспользоваться - эта логика мне ясна... Но поймите - есть клиент для базы (через саму базу никто добавить не сможет - нет прав). И я вижу что добавив одну запись нормально, следующая уже на 5 больше. Вывод - глюк функции, либо я прирост может неправильно делаю...
Потому что это поле отображает текущую нумерацию sequence! В самой последовательности будут такие же цифры... |
||||||||
10 апр 15, 12:20 [17497991] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11561 |
а в приложении вашем небось грид стоит и там юзеры напрямую редактируют записи? вот и получается, что юзер встал на строку с новой записью в гриде, а у вас сиквенс получил новый номер. а юзер взял и cancel нажал, вуаля. |
10 апр 15, 12:22 [17498015] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Да что вы говорите! Даже если я последовательность увеличу, а данные не занесу, то эти незанесенные данные мне покажут "текущую нумерацию sequence" Даже если я потом записи из таблицы удалю, то они даже удаленные что-мне будут показывать "текущую нумерацию sequence" ? Вау ! |
||
10 апр 15, 12:25 [17498035] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Действительно, попробовал отменить создание записи несколько раз, а потом создать, итог - перескочило на несколько вперед! Только не грид а навигатор стоит... Как бороть - marshaloptions? |
||
10 апр 15, 12:32 [17498073] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Правильно программировать последовательность действий |
||
10 апр 15, 12:38 [17498116] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Как всегда ничего конкретного... По теме - так и не понял в чем проблема. В предыдущий раз отменил 2 записи и создал одну, так он с 371 на 373 перескочил. После перезапуска приложения и последовательности считает нормально. ЗЫ: marshaloptions не меняет при клиентском курсоре. |
||||
10 апр 15, 13:13 [17498325] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Наверное потому что ума не хватает понять ?
А вы знаете, как сервер "отменяет записи" ? |
||||
10 апр 15, 13:18 [17498358] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
FOGOT-BAstA, Как связаны таблица и SEQUENCE? Зачем Вы всё время аппелируете к какой-то таблице? |
10 апр 15, 13:19 [17498367] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
в таблице присутствует поле в котором по умолчанию стоит NEX VALUE FOR для этой sequence вот и все. Понятно что последовательность сама по себе существует... |
||
10 апр 15, 13:28 [17498442] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Ага. Осталось только узнать, как таблица сама в себя записи "добавляет" и "отменяет". Вот вы по всей видимости этого не знаете. Потому что просто нажимаете какие-то кнопки в каком то гриде. |
||
10 апр 15, 13:30 [17498449] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8300 |
FOGOT-BAstA, Ваш клиент так работает - добавляет до того, как пользователь нажал кнопку "добавить". |
10 апр 15, 13:30 [17498452] Ответить | Цитировать Сообщить модератору |
FOGOT-BAstA Member Откуда: Сообщений: 197 |
Но вот сейчас я пытаюсь так сделать (отменить несколько записей и добавить одну) и он нормально работает...я просто слышал что в оракле бывают такие же проблемы с перескоками и там решалось удалением кэша из sequence... |
||
10 апр 15, 13:40 [17498516] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Просто программировать надо с использованием рук и головы. А не мышкой тыкать в кнопки. |
||
10 апр 15, 13:43 [17498536] Ответить | Цитировать Сообщить модератору |
Konst_One Member Откуда: Сообщений: 11561 |
надо написать свой CRUD. тогда в запросах сам будешь всё контролировать на уровне сервера SQL |
10 апр 15, 13:52 [17498594] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: [1] 2 вперед Ctrl→ все |
Все форумы / Microsoft SQL Server | ![]() |