powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Счетчик через SQL запрос
10 сообщений из 10, страница 1 из 1
Счетчик через SQL запрос
    #32106102
bzum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли средствами sql написать счетчик , типа первая строка , вторая и так сколько строк в наборе такой и номер строки .
Я не думаю что такое возможно , но может кто подскажет
Именно одной инструкцией SQL .
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32106145
Фотография Dim Grishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в смысле пронумеровать?
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32106332
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотря в какой базе в Oracle можно... там для этого есть псевдостолбец rownum
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32106340
Фотография Jozo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какую БД юзаеш ???
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32106342
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если требуемый запрос отсортирован по какому-либо уникальному полю
то можно получить нумерацию таким образом
Код: plaintext
1.
2.
select T.*, (select count(P1.KeyField) from YourTable T1 where T1.KeyField < T.KeyField) as Number  from YourTable  T
order by T.KeyField
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32106363
StarWind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И опять же не все базы даже такое поддержат....
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32108414
kun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
kun
Гость
А в MS SQL Server такое возможно? Если возможно, то как?
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32108521
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как указал LexusR.

Но на MSSQL можно сделать и более эффективное (по скорости исполнения) решение:

Код: plaintext
1.
2.
3.
set nocount on
select identity(int, 1 , 1 ) Number, * into #tmp from Table ..... order by ....
select * from #tmp order by Number
drop table #tmp
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32109125
rock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите как такое сделать на Дельфи, например с помощью вычисляемых полей?
Пробовал так:
OnCalcField:
ADOQuery.FieldByName('RecNo'):=ADOQuery.RecNo;

но почему то первая строка равно -1... 8-(
Может элегантнее способ есть?
...
Рейтинг: 0 / 0
Счетчик через SQL запрос
    #32109129
LexusR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто DataSet.Bof = true и поэтому для первой записи дает -1
(если потом проскролить вниз и вверх то -1 нормально отображается как 1)
поставь защиту от -1 и будет счастье
Код: plaintext
1.
2.
3.
 ADOQuery.FieldByName('RecNo').value := ADOQuery.RecNo; 
 if  ADOQuery.FieldByName('RecNo').value = - 1  then
   ADOQuery.FieldByName('RecNo').value :=  1 ;
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Счетчик через SQL запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]