![]() |
|
|
![]()
|
|
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Как обнулить autoincremet-поле в таблице Paradox. Дело в том, что в процессе работы моей программы постоянно это поле увеличивается и увеличивается. Когда я запись из таблицы удаляю, то вовсе не уменьшается значение этого поля на единицу для всех остальных записей, а наоборот, следующая созданная запись имеет +1 большее значение этого поля. Может возможно его обнулить в какое-то время?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 2 Всего: 61 |
Sorry, что не ответ, а вопрос: а что это за поле?
|
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Это такое поле, которое само по себе прибавляется на 1 при создании новой записи: auto - автоматически; increment - увеличение на 1.
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 2 Всего: 61 |
А как его устанавливать? Через что*
|
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Это делается в Database Desktop'е. Когда таблицу создаем, там и устанавливаем тип поля!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 2 Всего: 61 |
Угу... спасибо.
попробуем разобраться... Добавлено @ 21:00 А может заменить его на обычное числовое поле и самостоятельно при добавлении/удалении изменять его значение (немного дольше, но алгоритм понятнее...) |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Нет, так не прет. Это не только намного дольше, а просто офигительно долго. Нужно что-то другое!
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| _hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 1 Всего: 98 |
никак -- на то оно и auto
так и должно быть ( значение счетчика -- _глобальное_ для таблицы ) проблему можно решить разве что переиндексацией таблицы ( например раз в день ) P.S. а нужно ли его обнулять? -------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Тогда такой вопрос: как таблицу переиндексировать? Что имеется ввиду под этим выражением. При чем тут индексы? А обнулять для того, чтобы когда-нибудь, пусть и не скоро, не произошло какой-нибудь ошибки. А то в данный момент в моей маленькой базе уже эти поля до значения 400 дошли, а что будет потом?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 2 Всего: 61 |
[offtop=небольшое отступление] Большущий облом... числа кончатся, тогда нодо предложить пользователю почистить базу данных или ещё что-нибудь сделать... Это можно устроить при добавлении новой записи: проверять, есть ли возможность увеличить индекс? А конченое число индекса можно установить эксперементально... [/offtop] Это сообщение отредактировал(а) Pakshin A. S. - 5.10.2004, 17:33 |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 1 Всего: 98 |
Переиндексация это создание новой временной таблицы ( в ней индекс пойдет с нуля ) с последующим замещением исходной таблицы
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Не забывайте о такой вещи как упаковка таблицы. после ее осуществления "лишние" номера удалятся, т.е. перенумеруются. И еще есть вариант, поменять тип поля на integer, обработать, и вернуть обратно в тип автонумерации. Эти типы спокойно переживают такие переобразования.
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Cashey, дельное предложение. А теперь можно подробнее о том, что ты назвал упаковкой. Как она выполняется и поподробнее, если возможно. И еще, как сменить программно тип поля?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 1 Всего: 98 |
Cashey, пытался я делать такие преобразования в аксессе -- в int конвертилось без проблем, а вот назад -- нет
упаковка не поможет по причине запоминания значения счетчика -- следующее значение будет +1 к нему -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: нет Всего: 4 |
Обидно, досадно... А исправить все-таки можно как-нить или все старания напрасны?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |