Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сквозная нумерация в DbGrid [D7, MSSQL]


Страницы:   1 2

m_i_p ©   (2006-11-03 08:07:00) 

помогите плиз,
необходимо в DbGrid отобразить номера строк, как например это сделано в Excel


evvcom   (2006-11-07 09:24:00) [1]

> [19] Johnmen ©   (03.11.06 14:31)

OnCustomDrawCell я, конечно, погорячился. Из DevExpress этот обработчик. А для DBGrid вот:
procedure TMyForm.DBGrid1DrawColumnCell(Sender: TObject;
 const Rect: TRect; DataCol: Integer; Column: TColumn;
 State: TGridDrawState);
begin
 inherited;
 if Column.FieldName = '' then
   DBGrid1.Canvas.TextOut(Rect.Left, Rect.Top, IntToStr(MyDataSet.RecNo));
end;

Мог бы и провести аналогию имен :)


Anatoly Podgoretsky   (2006-11-04 12:11:00) [2]

> MsGuns  (04.11.2006 12:05:28)  [28]

Наоборот, непонимающий Вы наш


MsGuns   (2006-11-04 12:05:00) [3]

>Anatoly Podgoretsky ©   (04.11.06 11:02) [26]
>И это тоже самое, это самое слово. Можно дать только от не понимания
технологий работы с базами.

Сабж нетрудно перечитать, всепонимающий Вы наш ?
;)))


Anatoly Podgoretsky   (2006-11-04 11:03:00) [4]

> Дмитрий Белькевич  (04.11.2006 2:40:25)  [25]

> всегда однозначность гарантирована

А кто просил одназначность, одназначно реализуется с помощью первичных
ключей.


Anatoly Podgoretsky   (2006-11-04 11:02:00) [5]

> MsGuns  (04.11.2006 1:49:24)  [24]

> Text := IntToStr(Sender.DataSet.RecNo);

И это тоже самое, это самое слово. Можно дать только от не понимания
технологий работы с базами.


Дмитрий Белькевич   (2006-11-04 02:40:00) [6]

В качестве глупой идеи: т.к. к таблицам часто инкрементные поля - юиды добавляют, может эти юиды и показывать? Тогда пофиг фильтр/сортировка - всегда однозначность гарантирована, да и никакой дополнительной возни, только поле таблицы показать.


MsGuns   (2006-11-04 01:49:00) [7]

Засстерилитсья ! Сколько "вумных" советов и критики, и ни одного толкового совета.

TField.OnGetText(event):

 Text := IntToStr(Sender.DataSet.RecNo);\

и все..


Кщд   (2006-11-03 18:45:00) [8]


> Павел Калугин ©   (03.11.06 17:53) [22]

там где-либо предлагают совершить N table scan, где N - кол-во записей в выборке? :)


Павел Калугин   (2006-11-03 17:53:00) [9]

> [21] Кщд ©   (03.11.06 17:52)


> [17] sniknik ©   (03.11.06 13:42)
вообще на http://sql.ruгдето есть статься по этой нумерации, рассмотрено гдето 6-8 способов... и их недостатки.


Кщд   (2006-11-03 17:52:00) [10]


> остается получить его в наборе данных.

посчитайте во сколько table scan это выльется
лучше уж никак, чем таким запросом...


Павел Калугин   (2006-11-03 16:06:00) [11]

> [17] sniknik ©   (03.11.06 13:42)

естественно читал
В гриде отобразить можно что?
да хоть черта лысого. Особенно просто его отобразитиь если этот черт - набор данных
остается получить его в наборе данных.


Johnmen   (2006-11-03 14:31:00) [12]


> evvcom ©   (03.11.06 14:02) [18]
> Да к DataSet вообще можно ничего не прикручивать. Автор
> же про DbGrid говорит. Простейший OnCustomDrawCell ....


С этого места поподробней :)


evvcom   (2006-11-03 14:02:00) [13]

Да к DataSet вообще можно ничего не прикручивать. Автор же про DbGrid говорит. Простейший OnCustomDrawCell и никакой зависимости от недостатков row_num, row_number и им подобных.


sniknik   (2006-11-03 13:42:00) [14]

> Но, мое мнение, что не создавая ХП вложить всесь этот процесс в TDataSet несколько хлопотно. поздзапрос проще.
а ты читал то на что отвечаешь? показанные там 2 строчки это и есть все "хлопоты", не показана третья с непосредственно выборкой, ну и удаление темповой тоже желательно. но это все, и гораздо проще чем еще ХП туда притягивать.

вообще на http://sql.ruгдето есть статься по этой нумерации, рассмотрено гдето 6-8 способов... и их недостатки.


Павел Калугин   (2006-11-03 13:27:00) [15]

> [14] Кщд ©   (03.11.06 13:19)

Ну, если можно ХП написать и табличку создать то проще сразу создавать с полем RowMo identyty(1,1) и вставлять туда набор данных.
Но, мое мнение, что не создавая ХП вложить всесь этот процесс в TDataSet несколько хлопотно. поздзапрос проще.


Кщд   (2006-11-03 13:22:00) [16]


> Которая полетит к черту при локальной сортировке/фильтрации

разумеется
просто способ получить пронумерованный набор с сервера


Кщд   (2006-11-03 13:19:00) [17]


>        (select count(*)
>          from authors b
>         where  b.au_lname+' '+ b.au_fname <= a.au_lname+'
> '+ a.au_fname
>        ) As RowNumber

это даже на индекс не встанет
если очень хочется, то лучше, имхо, так:
create table #temp (id int, name varchar(100))
select identity(int, 1, 1) as id, t.name into #temp from sometable t


Anatoly Podgoretsky   (2006-11-03 13:18:00) [18]

> Кщд  (03.11.2006 12:57:10)  [10]

Которая полетит к черту при локальной сортировке/фильтрации


Anatoly Podgoretsky   (2006-11-03 13:17:00) [19]

> Sergey13  (03.11.2006 11:09:05)  [5]

А ведь не для отчетов просят.


Anatoly Podgoretsky   (2006-11-03 13:16:00) [20]

> evvcom  (03.11.2006 11:00:03)  [3]

Вот это то и обидно, а ведь уверяли, что без этих номеров жить не могут.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо