Поиск:

Ответ в темуСоздание новой темы Создание опроса
> База данных, autoincrement в Paradox-таблицах 
:(
    Опции темы
MacTep
Дата 4.10.2004, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Как обнулить autoincremet-поле в таблице Paradox. Дело в том, что в процессе работы моей программы постоянно это поле увеличивается и увеличивается. Когда я запись из таблицы удаляю, то вовсе не уменьшается значение этого поля на единицу для всех остальных записей, а наоборот, следующая созданная запись имеет +1 большее значение этого поля. Может возможно его обнулить в какое-то время?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 4.10.2004, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Sorry, что не ответ, а вопрос: а что это за поле? sad.gif sad.gif sad.gif
PM   Вверх
MacTep
Дата 4.10.2004, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Это такое поле, которое само по себе прибавляется на 1 при создании новой записи: auto - автоматически; increment - увеличение на 1. smile.gif


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 4.10.2004, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



А как его устанавливать? Через что*
PM   Вверх
MacTep
Дата 4.10.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Это делается в Database Desktop'е. Когда таблицу создаем, там и устанавливаем тип поля!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 4.10.2004, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Угу... спасибо.

попробуем разобраться...
Добавлено @ 21:00
А может заменить его на обычное числовое поле и самостоятельно при добавлении/удалении изменять его значение (немного дольше, но алгоритм понятнее...)
PM   Вверх
MacTep
Дата 5.10.2004, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Нет, так не прет. Это не только намного дольше, а просто офигительно долго. Нужно что-то другое!


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
_hunter
Дата 5.10.2004, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 1
Всего: 98



Цитата
Как обнулить autoincremet-поле

никак -- на то оно и auto
Цитата
а наоборот, следующая созданная запись имеет +1 большее значение этого поля

так и должно быть ( значение счетчика -- _глобальное_ для таблицы )

проблему можно решить разве что переиндексацией таблицы ( например раз в день )

P.S.
а нужно ли его обнулять?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MacTep
Дата 5.10.2004, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Тогда такой вопрос: как таблицу переиндексировать? Что имеется ввиду под этим выражением. При чем тут индексы? А обнулять для того, чтобы когда-нибудь, пусть и не скоро, не произошло какой-нибудь ошибки. А то в данный момент в моей маленькой базе уже эти поля до значения 400 дошли, а что будет потом?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Pakshin A. S.
Дата 5.10.2004, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Цитата(MacTep @ 5.10.2004, 18:28)
а что будет потом?

[offtop=небольшое отступление]
Большущий облом... числа кончатся, тогда нодо предложить пользователю почистить базу данных или ещё что-нибудь сделать... Это можно устроить при добавлении новой записи: проверять, есть ли возможность увеличить индекс? А конченое число индекса можно установить эксперементально...
[/offtop]

Это сообщение отредактировал(а) Pakshin A. S. - 5.10.2004, 17:33
PM   Вверх
_hunter
Дата 5.10.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 1
Всего: 98



Переиндексация это создание новой временной таблицы ( в ней индекс пойдет с нуля ) с последующим замещением исходной таблицы


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Cashey
Дата 5.10.2004, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бессмертный
****


Профиль
Группа: Завсегдатай
Сообщений: 3441
Регистрация: 13.11.2002
Где: в столице

Репутация: нет
Всего: 60



Не забывайте о такой вещи как упаковка таблицы. после ее осуществления "лишние" номера удалятся, т.е. перенумеруются. И еще есть вариант, поменять тип поля на integer, обработать, и вернуть обратно в тип автонумерации. Эти типы спокойно переживают такие переобразования.


--------------------
библия учит любить ближнего, а камасутра обучает как именно
PM Jabber   Вверх
MacTep
Дата 5.10.2004, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Cashey, дельное предложение. А теперь можно подробнее о том, что ты назвал упаковкой. Как она выполняется и поподробнее, если возможно. И еще, как сменить программно тип поля?



--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
_hunter
Дата 6.10.2004, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 1
Всего: 98



Cashey, пытался я делать такие преобразования в аксессе -- в int конвертилось без проблем, а вот назад -- нет sad.gif

упаковка не поможет по причине запоминания значения счетчика -- следующее значение будет +1 к нему


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
MacTep
Дата 7.10.2004, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1292
Регистрация: 4.8.2003
Где: г. Самара

Репутация: нет
Всего: 4



Обидно, досадно... А исправить все-таки можно как-нить или все старания напрасны?


--------------------
(A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :)
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.