![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неожиданный key violation в автоинк поле [D5, Paradox]
VladP © (2002-01-31 11:20:00)Здравствуйте!
Помогите, если кто сталкивался.
Есть таблица Paradox:
Id autoinc
Name Char(35)
...
Все работает замечательно до некоторого времени (1-2 месяца), когда на любое добавление (даже в не в Delphi, a в Database Desktop) выдается Key Violation!
Я вроде бы нашел решение, но оно не есть гуд. Если кому интересно, то помогает изменение типа поля с Autoinc на integer и затем опять на AutoInc.
VladP (2002-02-03 16:02:00) [1]>2Фэ
Извини, но что есть пересборка базы?
Фэ (2002-02-03 13:57:00) [2]Плохой потому, что при использовании автоинкремента в качестве искусственного ключа, наличии более одной таблицы и связей между ними и при необходимости пересборки базы, если не принять специальных мер - можно все связи потерять в мгновение ока.
Только об этом речь.
VladP (2002-02-03 10:25:00) [3]>Haves
Спасибо за компонент, судя по описанию-именно то.
VladP (2002-02-03 10:07:00) [4]>Фэ
Почему плохой? По моему очень удобно. Попробуй делать выборку на a=max(id), потом добавлять новую запись с полученным значением+1, потом еще раз делать выборку на чтобы подсчитать кол-во полученных значений (a+1), а вдруг другой пользователь тоже самое сделал в это же время? Это было одним из плюсов из-за чего я перешел на Paradox.
Havez (2002-02-02 18:24:00) [5]Посмотри в кладовке, там есть пара компонентов с нужными функциями.
Фэ (2002-02-01 21:37:00) [6]Autoinc вообще плохой тон.
Кроме очень простых случаев.
А если крупную базу пересобрать надо ?
VladP (2002-02-01 21:29:00) [7]Может кто еще знает?
Fay (2002-01-31 15:57:00) [8]Лечится только твоим способом.