Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обнуление autoincrement поля... как ? [D5, Paradox]


Lego ©   (2002-08-23 07:22:00) 

Есть база, в ней было пускай 1000 записей, после простого удаления база как-бы пустая но размер *.db файла ужасен, если сделать так > Table1.EmptyTable; то более или менее нормально, но остаются старый(удаленные) номера строк... как можно и их обнулить(очистить) ?


Vlad1   (2002-08-25 13:20:00) [1]

Уважаемый, Lego, попробуйте с помощью Sql через TQuery:
создайте новую таблицу с той же структурой, но с другим именем; если после удаления в старой таблице есть ещё данные, скопируйте их из старой таблицы в новую (insert), Удалите старую таблицу, а новую переименуйте.


Lego   (2002-08-24 06:30:00) [2]

Упаковка таблицы очищает саму таблицу от удаленных данных, но не несклеивает пустоты... например идут номера записей 1,2,3,4 а затем резко 20,21,22,23... впринципе мне это не очень нужно хотя неплохая штука...
мне нужно было другое... после Table1.EmptyTable; все данные из таблицы удаляются и сама таблица очищается... как-будто ее только создали... но... щетчик остается на последней записи...

SaS13 показал то что у когото такаяже проблема... щас пойду смотреть все варианты ответов...
Спасибо всем.


elv   (2002-08-23 21:35:00) [3]

Lego © (23.08.02 07:22)
Есть база, в ней было пускай 1000 записей, после простого удаления база как-бы пустая но размер *.db файла ужасен, если сделать так > Table1.EmptyTable; то более или менее нормально, но остаются старый(удаленные) номера строк... как можно и их обнулить(очистить) ?
А зачем?

P.S.Можешь войти в DBD и сделать поле сначала I, потом +_.


Vlad1   (2002-08-23 21:05:00) [4]

Попробуй через TQuery:создай новую таблицу с такой же структурой и другим именем, скопируй оставшиеся после удаления данные из старой таблицы в новую, а затем удали старую таблицу, а новую переименуй (последнее через TTable, а всё остальное через ExecSQL). Работает быстро (года 2 назад проверял в 5-й дельфи).


_Pavel_   (2002-08-23 10:18:00) [5]

В Delphi не пробовал, но в DatabaseDesktope EmptyTable
удаляет все записи без возможности их восстановления, при этом
обнуляются все AutoInc поля.
По всей видимости в Delphi все обстоит таким же образом.
А упаковку таблиц лучше брать из RXLib:
PackTable(Table1);


SaS13   (2002-08-23 09:28:00) [6]

http://delphi.mastak.com/cgi-bin/forum.pl?look=1&id=1029844263&n=1


Skif   (2002-08-23 08:55:00) [7]

Вы долюжны упаковать таблицу. Если надо, то пишите на почтовый ящик вышлю пример. Или смтортите хелп на dbiDoRestructure(много параметров). И надо использовать, по моему,
Table1.Check(dbiDoRestructure(много параметров).


Наверх

Титульная страница Поиск, карта сайта Написать письмо