Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

paradox

596
09 сентября 2003 года
sinyk
58 / / 07.07.2003
Какие могут быть глюки при работе с базами парадокс через БДЕ ?

У меня есть поле аутоинкремент. так вот... я провожу n- операций, потом поочереди очищаю базу(
->Delete()). Затем провожу еще n- операций...Вопрос : поле аутоинк. начинает нумерацию не с 1, а с последнего числа удаленных операций. Почему, и как этого избежать ?
It's ALL.
293
09 сентября 2003 года
SEDEGOFF
586 / / 06.10.2002
Поле автоинкремента сквозное, то есть если ты внесешь 2000 записей и удалишь, то следуящая запись получит номер 2001. Просто так принято и это правильно. Как обнулять счетчик програмно я не нашел. Но нашел два пути
1. Делаю это поле просто ИНТ, сохраняю, потом делаю опять автоинкремент - и все, инкремент опять с 0.
2. В некоторых программах можно устанавливать текущее значение инкремента, например Paradox9(среда разработки)
1.9K
10 сентября 2003 года
ILS
100 / / 28.01.2003
Цитата:
Originally posted by SEDEGOFF
Просто так принято и это правильно.


Да так принято - НО иногда БД портятся и их нужно
подвергать Restructure, и если какие-либо записи были удалены - то (авто)нумерация всех последующих
сбивается...
Иногда я "перекатываю" записи из ремонтируемой БД в новую, анализируя при этом разрывы в нумерации,и
естесственно - корректирую их в новой БД - вот так:
//---------------------------------------------------------------------------
int __fastcall SetLastAutoInc(AnsiString dbName,int num)
{
int ret=0;
if(!FileExists(dbName)) ret=-1;
else { int fhand=FileOpen(dbName,fmOpenWrite|fmShareExclusive);//!!!
if( fhand<0) ret=-2;
else { if(FileSeek(fhand,0x49,0)<0) ret=-3;
else if(FileWrite(fhand,&num,4)<0) ret=-4;
FileClose(fhand);
}
}
return ret;
}

1.9K
27 декабря 2005 года
ILS
100 / / 28.01.2003
Цитата:

У меня есть поле аутоинкремент...


Привет через 20 лет :-)
То ли эта ошибка исправлена, а я не имею об этом информации, то ли она проявляется в каких-то особых случаях. К сожалению, у меня не осталось тестовой БД, на которой я отлаживал борьбу с этим глюком. Если у Вас сохранилась некая таблица, которая по прежнему глючит при реиндексации - перешлите пожалуйста на [email]mingaraev@yandex.ru[/email].
Заранее блогадарен.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог