Форум Кумертау-City.ru: Вопросы по Delphi - Форум Кумертау-City.ru

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Вопросы по Delphi язык программирования Delphi (FAQ) Оценка: -----

#1 Пользователь офлайн   Mr.ZEVS 

  • Администратор
  • Вставить ник
  • Цитировать
  • Группа: Admin
  • Сообщений: 299
  • Регистрация: 10 апреля 03
  • Репутация: 1

  Отправлено 18 августа 2004 - 22:21

Программеры, ау.

Вопрос в следующем:
Нужно сделать ПРАВИЛЬНУЮ нумерацию в базе данных (Paradox 7), чтобы при удалении записи нумерация не портилась (autoincrement). КАК????

Надеюсь понятно изложил суть.
  • +
  • 0

#2 Пользователь офлайн   beh0lder 

  • Модератоp
  • Вставить ник
  • Цитировать
  • Группа: Модераторы
  • Сообщений: 1 676
  • Регистрация: 10 апреля 03
  • Репутация: 14

Отправлено 19 августа 2004 - 08:40

тут прийдется либо вручную генерить номера записей и затем при удалении перелопачивать всю таблицу, чтобы првести ее в порядок (что будет очень долго и гиморно) - это если тебе нужна нумерация строго в порядке появления этих записей в таблице, либо хранить где-то номера удаленных записей и при добавлении новой записи сначала проверять нет ли свободных номеров, оставшихся от удаленных записей...
  • +
  • 0

#3 Пользователь офлайн   Master Boo 

  • †Инквизитор†
  • Перейти к галерее
  • Вставить ник
  • Цитировать
  • Группа: Глобальный модератор
  • Сообщений: 6 388
  • Регистрация: 14 апреля 03
  • Репутация: 166

Отправлено 19 августа 2004 - 14:08

ZEVS, а нафига? Если у тебя где-то есть ссылки по номеру записи, то тебе и их необходимо будет править... Гиморно больно... А из того, что предложил beh0lder, второй вариант выгоднее - меньше лишних операций...
  • +
  • 0

#4 Пользователь офлайн   Mr.ZEVS 

  • Администратор
  • Вставить ник
  • Цитировать
  • Группа: Admin
  • Сообщений: 299
  • Регистрация: 10 апреля 03
  • Репутация: 1

Отправлено 22 августа 2004 - 09:48

Все сделал, правда примитивно, но для не больших таблиц вполне приемлемо.
Код вставки записи:
begin
Form1.Table1.Last;
Form1.Table1.Append;
Form1.Table1NumPP.Text := IntToStr(Form1.Table1.RecordCount+1);

Код удаления записи:
procedure TForm6.Button1Click(Sender: TObject);
var Count : integer;
Pos : integer;
begin
Pos := Form1.Table1.RecNo;
Form1.Table1.Delete;
for Count := Pos to Form1.Table1.RecordCount do
begin
Form1.Table1.RecNo := Count;
Form1.Table1.Edit;
Form1.Table1NumPP.Text := IntToStr(Form1.Table1.RecNo);
end;
Form1.Table1.RecNo := Pos;
Form6.Close;
end;


Мож проще можно?
  • +
  • 0

#5 Пользователь офлайн   /\/\ 

  • Местный
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 85
  • Регистрация: 11 апреля 03
  • Репутация: 0

Отправлено 22 августа 2004 - 22:40

Во всех связанных таблицах надо будет NumPP тоже исправлять.
Тебе что обязательно, что бы они по порядку шли?
  • +
  • 0

#6 Пользователь офлайн   Aerosmith 

  • Активный участник
  • PipPipPipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 326
  • Регистрация: 02 сентября 03
  • Репутация: 0

Отправлено 25 августа 2004 - 07:42

чет я не догоню...
ты номер записи сам чтоли ставишь? и поле есть у тя для этого....
а нафига??
тебе это проблем создает лишних..проверка -перепроверка
наверно пересмотреть тебе надо алгоритм..
  • +
  • 0

#7 NT Man

  • Группа: Гости

Отправлено 19 сентября 2004 - 10:45

Цитата

Мож проще можно?

А нафига тебе в самой БД хранить номера?
Тебе же их надо просто отобразить в Grid-е???
Опиши задачу по подробнее...

P.S. Пошли на мой форум там нормально и поговорим.

Сообщение отредактировал NT Man: 19 сентября 2004 - 10:47


#8 Пользователь офлайн   0bject 

  • Местный
  • PipPip
  • Вставить ник
  • Цитировать
  • Группа: Участник
  • Сообщений: 81
  • Регистрация: 26 марта 04
  • Репутация: 0

Отправлено 06 ноября 2004 - 23:32

кто-нибудь может внятно ответь и привести соответствующие аргументы: на чем лучше программить делфи или С++ билдер ???
  • +
  • 0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых