![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сквозная нумерация в DbGrid [D7, MSSQL]
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]
Вот это то и обидно, а ведь уверяли, что без этих номеров жить не могут.