![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как пронумеровать записи??? [D5, MSSQL]
-=[SDA]=- © (2004-02-04 07:28:00)
Приветствую, всех!... проблема моя в следущем: при выводе запроса в грид хотелось бы пронумеровать строки: 1,2,3..., но как это сделать что-то не сооброжу :( ... т.к. у меня 6.5й, то вариант есть - создавать темповую таблицу с identity полем и перегонять данные в неё, а потом в грид, но что-то не хочется использовать этот гнилой способ... так что помогите кто чем сможет,... :) заранее благодарен.
Ega23 (2004-02-04 09:29:00) [1]
Или делать это непосредственно на клиенте. Т.е. завести int поле в выборке, а потом на AfterOpen его заполнить.
Anatoly Podgoretsky (2004-02-04 09:28:00) [2]
А теперь поставь фильтр
LordOfSilence (2004-02-04 08:51:00) [3]
Это не "гнилой" способ.
select IDENTITY(INT,1,1) AS RowNumber, Field1, Field2
into #MyTempTable
from MySomeDataSet
Далее:
select * from #MyTempTable
Можно и по-другому, только должно выполняться условие, что твоя первичная выборка имеет условие ORDER BY по уникальномуполю.
SELECT
(SELECT COUNT(*) FROM MyTable A1
WHERE A1.SortField<=A2.SortField) NumRow,
SortField,Field1, Field2
FROM MyTable A2
ORDER BY SortField
На больших объемах, сам понимаешь, это может работать не слишком лихо.
Есть и третий, несколько "загадочный" вариант. В этом варианте в твоей таблице должно физически присутствовать поле для счетчика.
DECLARE @MyCount int
UPDATE MyTable SET @MyCount=RowNumField=IsNull(@MyCount,0)+1
В синтаксисе мог немного напутать, но, думаю, идея понятна.
-=[SDA]=- (2004-02-04 08:29:00) [4]
ok
DenK_vrtz (2004-02-04 08:18:00) [5]
Тут ветка дня два назад(и возникает каждую неделю не один раз с заметным постоянством) была. Поищи.