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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2008, 22:47   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию автоинкремент в запросе

как сделать дополнительное поле в запросе, чтобы выводил № по порядку. в отчете это как-то проще. а вот вывод в DBGirid как-то не получается.
ГОСЕАН вне форума Ответить с цитированием
Старый 27.01.2008, 00:43   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Способы существуют, но...
- зависит от используемой БД;
- на порядок замедляют выборку.
Самое простое и эффективное - добавить числовое поле и пробежаться по записям (на стороне клиента).
mihali4 вне форума Ответить с цитированием
Старый 28.01.2008, 17:57   #3
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Способы существуют, но...
- зависит от используемой БД;
- на порядок замедляют выборку.
Самое простое и эффективное - добавить числовое поле и пробежаться по записям (на стороне клиента).
я и хочу создать в запросе дополнительное числовое поле, чтобы выводило № п/п. БД на SQL Server2000
ГОСЕАН вне форума Ответить с цитированием
Старый 28.01.2008, 20:29   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, например:
Код:
SELECT 
	(Select Count(*) 
	From Products p 
	Where p.ProductName<= 
	 p1.ProductName) AS [Номер], 
	p1.ProductName as [Наименование] 
FROM 
	Products AS p1 
ORDER BY 
	p1.ProductName;
Я, конечно, понимаю - вы человек чрезвычайно занятой, да и негоже вам не царским делом - поиском по интернету заниматься...
mihali4 вне форума Ответить с цитированием
Старый 28.01.2008, 23:05   #5
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

используйте генераторы(тригеры).... для таблиц...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp

Последний раз редактировалось Pitbull; 28.01.2008 в 23:44.
Pitbull вне форума Ответить с цитированием
Старый 29.01.2008, 06:08   #6
Aristarh Dark
Форумчанин
 
Регистрация: 07.08.2007
Сообщений: 154
По умолчанию

Рекомендую делать нумерацию на клиенте, а не в запросе.
Aristarh Dark вне форума Ответить с цитированием
Старый 29.01.2008, 08:12   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А разве вычисляемым полем это нельзя сделать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.01.2008, 08:28   #8
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Мне способ Михалыча больше понравился.
Недавно сталкивался с проблемой, нужен счётчик, но при удалении записей, этот счётчик необходимо пересчитать, чтоб так и было по порядку.
грубо вашим способом: 1,2,3,4,5,6...
после удаления: 1,2,4,5,6... а надо 1,2,3,4,5.
zetrix вне форума Ответить с цитированием
Старый 29.01.2008, 16:57   #9
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
Смех

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ну, например:
Код:
SELECT 
	(Select Count(*) 
	From Products p 
	Where p.ProductName<= 
	 p1.ProductName) AS [Номер], 
	p1.ProductName as [Наименование] 
FROM 
	Products AS p1 
ORDER BY 
	p1.ProductName;
Я, конечно, понимаю - вы человек чрезвычайно занятой, да и негоже вам не царским делом - поиском по интернету заниматься...
Да не говори, а тут всякие поисковики чо ненадо мне находят, а чо надо не ищут
ГОСЕАН вне форума Ответить с цитированием
Старый 29.01.2008, 18:47   #10
Domovoy
Форумчанин
 
Регистрация: 24.10.2007
Сообщений: 254
По умолчанию

Согласен способ Михалыча рабочий, но его целесообразно использовать когда выборка небольшая и в качестве условия использовать identitycol.
Domovoy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоинкремент с нуля azat БД в Delphi 5 18.12.2007 08:26
Автоинкремент при компиляции _SERGEYX_ Общие вопросы Delphi 4 11.07.2007 01:24
Ошибка в SQL запросе eremin БД в Delphi 2 23.06.2007 07:13
Автоинкремент Askat БД в Delphi 3 18.06.2007 13:39