Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.10.2009, 09:34
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию Нумерация в DBGrid

Добрый день! Помогите, пожалуйста решить такую задачку:
Есть таблица отраженная в DBGrid с полями: Номер п/п, Дата поступления, Организация и т.д. Возможно ли при добавлении новой записи в таблицу сделать автоматическую нумерацию строк, чтоб номера отображались в столбце Номер п/п.
Ответить с цитированием
  #2  
Старый 19.10.2009, 09:49
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Сделай поле автоинкрементное в таблице и отображай его в DBGrid
Ответить с цитированием
  #3  
Старый 19.10.2009, 09:52
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию

А поподробней можно или ссылку где почитать?
Ответить с цитированием
  #4  
Старый 19.10.2009, 11:44
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

База какая? В аксесе- это поле создается автоматически при создании таблицы (в 2007 аксесе- это поле называется КОД, тип данных- СЧЕТЧИК). В paradox создаете поле с любым именем с типом AUTOINC (вроде там такой тип). В InterBase- надо создать генератор и написать тригер для подстановки значения генератора...
Вообще наберите в поисковике: тип своей базы + автоинкремет.
Ответить с цитированием
  #5  
Старый 19.10.2009, 11:53
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию

У меня БД в Access, подключенная через ADO.
Ответить с цитированием
  #6  
Старый 19.10.2009, 12:31
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Я не понимаю в чем проблема. Открой свою базу в аксесе, открой структуру своей таблицы, выбери поле Номер п/п и установи его тип- СЧЕТЧИК. Все, после выполнения операции POST, новой записи будет присвоен новый номер.
Ответить с цитированием
  #7  
Старый 19.10.2009, 15:40
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию

Извините за глупые вопросы, но опыта в программировании у меня маловато. Поставила я в Access поле Номер п/п – счетчик.
Когда заносишь данные в DBGrid в колонке номер п/п ни чего не отображается.
Ответить с цитированием
  #8  
Старый 19.10.2009, 16:22
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

Счетчик срабоает только после отправки данных в базу.
Как заносишь данные? Смотри личные сообщения, я отправи номер аськи, там будет проще и быстрее объяснить.
Ответить с цитированием
  #9  
Старый 19.10.2009, 18:29
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Автоинкрементное поле не подходит, т.к. оно уникально и не сместится на одно значение.
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #10  
Старый 20.10.2009, 13:14
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию

По кнопке Добавить запись появляется форма, в нее необходимо занести данные. Мне нужно, чтоб поле Номер п/п заполнялся автоматически.
См.рис.
Вложение 1
Вложения
Тип файла: rar 1.rar (21.2 Кбайт, 37 просмотров)
Ответить с цитированием
  #11  
Старый 20.10.2009, 20:28
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Сам столкнулся с такой же проблемой...в сети ничего не нашел...дело в том что у DBGrid нет автоматической нумерации...таблицу можно заполнить только посредством набора данных...т.е. через TTable или TQuery...т.е. помимо выборки нужно еще и обновлять поле номер базы данных, т.е. нумеровать...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #12  
Старый 21.10.2009, 13:32
Len@09 Len@09 вне форума
Прохожий
 
Регистрация: 13.10.2009
Сообщения: 21
Репутация: 10
По умолчанию

Неужели нет ни какого выхода?
Ответить с цитированием
  #13  
Старый 21.10.2009, 14:15
Аватар для TOJluK
TOJluK TOJluK вне форума
Местный
 
Регистрация: 25.02.2009
Адрес: Минск
Сообщения: 551
Версия Delphi: 2007
Репутация: 110
По умолчанию

DBGrid это ни что иное как графическое представление данных базы, ессесно оно ниче кроме как показать что есть в таблице не может.
Еще раз поторяю, делайте автоинкрементное поле! Не нравится автоиткремент- проставляйте номера вручную, не нравиться проставлять вручную- сделайте вычисляемое поле, и при каждом обращении к таблице оно будет само пересчитываться.
Ответить с цитированием
  #14  
Старый 21.10.2009, 18:58
Аватар для NIch
NIch NIch вне форума
Продвинутый
 
Регистрация: 02.06.2008
Адрес: Бендеры ПМР
Сообщения: 754
Репутация: 2446
По умолчанию

Повторюсь автоинкрементное поле не подходит, т.к. при выборке данных номер автоикрементного поля не изменится...пример...
1 Саша
2 Дима
3 Денис
4 Вася
5 Алеша
6 Петя
если выбрать только те имена которые имеют 4 буквы то вот что получится...
1 Саша
2 Дима
4 Вася
6 Петя
Вариант заново проставлять все номера в наборе данных, но поле не автоинкрементное, т.к. его менять нельзя, BDE само увеличивает его значение на 1...т.е. к примеру изначально было так...
1 Саша
2 Дима
3 Денис
4 Вася
5 Алеша
6 Петя
После выборки так,
1 Саша
2 Дима
3 Вася
4 Петя
а в базе данных осталось так
1 Саша
2 Дима
3 Денис //остался прежний номер
3 Вася
5 Алеша //остался прежний номер
4 Петя
А как сделать поле вычисляемым ума не приложу...
На одном из форумов читал, парни просто рисуют на канве номера, а еще есть нестандартный компонент таблица, который позволяет нумеровать строки, но по моему он платный...
__________________
В начале был Бит, потом Байт и только потом появилось Слово...
Ответить с цитированием
  #15  
Старый 21.10.2009, 21:22
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Небольшая подсказка: При любом типе выборки, независимо от вида сортировки RecNo будет возвращать порядковый номер строки в этой выборке, т.е. то что вы хотите. Осталось только сделать поле которое будет выводить этот номер в гриде.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter