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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2011, 06:26   #1
Gul4ik_kazmys
Новичок
Джуниор
 
Регистрация: 02.09.2011
Сообщений: 2
По умолчанию DBGrid

здрастье! подскажите плиз как мне сделать так, чтобы при удалении строки в DBGrid колонка для нумерации менялась автоматически, у меня база на SQL Server 2005, тама эту колонку я сделала как идентити поле. в таблице когда заполняю все хорошо, а когда удаляю строку нумерация не меняется. Н/п есть поля 1,2,3,4. Я удаляю строку 2 и у меня остается 1,3,4 =(((((. Как быть и че делать хэлп ми плиз, за ранее благодарю!
Gul4ik_kazmys вне форума Ответить с цитированием
Старый 02.09.2011, 08:26   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Автоматически никак, только программно (или триггер) при условии, что это поле не будет идентити
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.09.2011, 09:07   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) DBGrid всего навсего отображает то, что есть в наборе данных.

2)
Цитата:
Н/п есть поля 1,2,3,4.
Вы путаете понятия "поле" и "запись"
если представить таблицу БД как обычную таблицу в широком понимании (ну как Grid), тогда поля - это колонки. Они отражают характеристики объекта (номер, ИНН, вес, наименование и т.д. и т.п.), а вот строчки в этой таблице - это есть записи (совокупность полей, характеризующая один объект).
Всё это, конечно, изложено крайне упрощённо (даже в ущерб корректности), специально, чтобы Вам было легче понять, в чём Вы заблуждаетесь...


3) Нумерация записей зависит, в первую очередь, от того, в каком порядке выводятся записи. Если изменить их порядок - желанная Вами нумерация должна меняться?

4) ну и последнее. на форуме эта тема (изменение нумерации записей в таблице при удалении записей) поднималась неоднократно. Вы, при желании легко найдёте темы, где это обсуждалось (если не найдёте - я помогу поискать).
Но, на мой взгляд, правильное решение (если реально нужна нумерация в гриде), либо получать номер в самом запросе, либо использовать вычисляемое поле и формировать нужный номер в нём. Возможно, конечно, завести просто числовое поле в таблице и триггерами его перенумеровывать при удалении записей. Но это КРАЙНЕ неэффективно (да и бессмысленно!). Так поступать я не рекомендую.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
связь одной dbgrid c другой dbgrid anabenne БД в Delphi 3 17.10.2011 10:15
Возможно DBgrid в DBgrid zidane007_06 БД в Delphi 2 14.05.2011 00:35
Перемещение даннах из dbgrid в dbgrid Hobbit_88 БД в Delphi 7 10.06.2009 13:33
перенос данных из DBGrid в DBGrid KingSize БД в Delphi 17 24.04.2009 09:30