Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2011, 17:28   #1
Girl-bird
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 10
По умолчанию Добавление/ удаление записей в dbGrid

в таблице (БД на mySQL) есть поле ID (Auto increment). Как сделать чтоб при удалении это поле обновлялось и нумерация не сбивалась.
Заранее спасибо.
Girl-bird вне форума Ответить с цитированием
Старый 30.05.2011, 17:46   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
Как сделать чтоб при удалении это поле обновлялось и нумерация не сбивалась.
Никак и НЕ нужная (даже вредная) затея. Ключевые поля (PRIMARY KEY) НЕ ДОЛЖНЫ ЗАВИСЕТЬ ОТ ПРИХОТЕЙ ПОЛЬЗОВАТЕЛЯ. Для нужд пользователя предусмотреть свое поле нумерации с возможностью ручного редактирования.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 30.05.2011, 18:06   #3
Girl-bird
Пользователь
 
Регистрация: 22.05.2011
Сообщений: 10
По умолчанию

но это же дикость хотелось как-то облегчить участь пользователя, да и это не красиво совсем , когда нумерация идёт допустим таким образом: 1,6,9,10,11,23,24 ...
Girl-bird вне форума Ответить с цитированием
Старый 30.05.2011, 20:47   #4
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

заведите еще одно поле, но не первичный ключ, заполняейте его max(номер)+1. После удаления правда придется все пересчитывать и изменять нужно будет много чего делать. А вам вообще это зачем? Пользователю обязательно видеть эту номерацию? Да и зачем собстенно ему ее видеть если постоянно идет какое-то удаление
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 30.05.2011, 21:01   #5
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,543
По умолчанию

Цитата:
но это же дикость
Это не дикость, а гарантия НАДЕЖНОСТИ БД. Ссылки на указанную запись не будут самопроизвольно скакать (менять запись на которую они ссылаются) ни при каких условиях. А вот обратное как раз дикость.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 30.05.2011 в 21:05.
evg_m вне форума Ответить с цитированием
Старый 30.05.2011, 22:09   #6
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

если бы мне это было очень нужно (правда не могу придумать ситуацию), я бы сделал ХП, которая сама бы нумеровала
_Engine_ вне форума Ответить с цитированием
Старый 31.05.2011, 01:55   #7
Gulik
Холост/Не замужем
Форумчанин
 
Аватар для Gulik
 
Регистрация: 13.11.2007
Сообщений: 283
По умолчанию

Добавь в компонент Table или что там у тебя... поле Num типа Integer и типом поля Calculated и с помощью события OnCalcFields делай нумерацию...
И у тебя всегда будет порядок...

Код:
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
   Table1Num.AsInteger := Table1.RecNo ;
end;

Последний раз редактировалось Gulik; 31.05.2011 в 02:08.
Gulik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление и удаление записей из БД (Access) a_n_n_a БД в Delphi 26 02.01.2016 18:13
Добавление записей в DBGrid без сохранения Hypermaster БД в Delphi 3 23.04.2010 08:46
Добавление и удаление записей в БД DimOn4Ik БД в Delphi 6 27.03.2010 15:07
Добавление записей в DBGrid с помощью Query Droid БД в Delphi 5 21.06.2009 03:02
Добавление и удаление записей в Listview Scorpeon Компоненты Delphi 0 08.06.2007 23:09