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

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

Сбросить счетчик в dbf [D7, dBase, FoxPro]


Nitrix ©   (2004-05-07 11:51:00) 

Помогите, пожалуйста, обнулить порядковый индекс (счетчик) в БД. Дело в том, что записи из базы удаляются, а добавленные новые продолжают увеличивать внутренний счетчик.


Nitrix   (2004-05-07 14:10:00) [1]

Я говорил про dBase III, но проблема уже решена.


Anatoly Podgoretsky   (2004-05-07 13:46:00) [2]

Возникает что за формат ты используешь и о каком счетчике ты говоришь.
Счетчик есть у dBase VII обнулению не подлежит, поскольку автоинкриментный. Только пересоздание таблице, возможно EmptyTable по другому работает, для этого типа, но сомневаюсь.
PackTable не влияет на счетчик.

Если хочешь, то прояснись по этим пунктам.


Nitrix   (2004-05-07 13:12:00) [3]

ОГРОМНЕЙШЕЕ всем спасибо, а особенно - Александру! Всё получилось! ))


Соловьев   (2004-05-07 12:33:00) [4]

BDE

procedure PackDBaseTable(Table:TTable);
var OldState : boolean ;
begin
with Table do
begin
  OldState := Active; Close;
  Exclusive := True; Open;

  DbiPackTable(DBHandle, Handle, nil, nil, True);

  Close; Exclusive := False;
  Active := OldState;
end;
end;


Nitrix   (2004-05-07 12:31:00) [5]

EmptyTable использовал... что-то не катит ((


Nitrix   (2004-05-07 12:29:00) [6]

:))
спасибо любезные, - вы меня переубедили


Мунька   (2004-05-07 12:29:00) [7]

dBase упаковывается однозначно, все-таки гляну хелп, не поленюсь,
ага в объекте TTable метод EmptyTable; для Парадокса работает однозначно, для dBase, наверное тоже.
А вот для Access в АДО-таблицах, похоже нет такого, что определенным образом усложняет некоторые вещи


Соловьев   (2004-05-07 12:26:00) [8]


> Помогите, пожалуйста, обнулить порядковый индекс (счетчик)
> в БД

И даже если он бы был, то это чревато огромными траблами - так как такое поле КЛЮЧЕВОЕ, и если начать там чего-то менять, то в связаных таблицах будет каша - а тебе бумага об увольнении :)


Мунька   (2004-05-07 12:22:00) [9]

>Если открыть БД в DataBase Desktop, то появится доп-поле в >котором и производится нумерация записей.
И что оно Вам мешает?


Соловьев   (2004-05-07 12:21:00) [10]


> Если открыть БД в DataBase Desktop, то появится доп-поле
> в котором и производится нумерация записей.

Я тоже могу окрыть в своей проге и там будет нумероваться, но єто никак не означает что в Фоксе есть счетчик. Может мы про Парадокс говорим или Ацес?


Nitrix   (2004-05-07 12:12:00) [11]

Если открыть БД в DataBase Desktop, то появится доп-поле в котором и производится нумерация записей.


Соловьев   (2004-05-07 12:06:00) [12]


> Сбросить счетчик в dbf

С каких это пор в Фоксе счетчик????


Мунька   (2004-05-07 12:04:00) [13]

Там надо сделать упаковку таблицы, на уровне DataBase Desktop есть команда "Очистить", она же есть на уровне BDE, надо только покопаться в хелпе, на уровне объекта TTable есть команда упаковки


bushmen   (2004-05-07 11:57:00) [14]

А если дать команду pack ?


Наверх

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