|
|
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Уважаемые господа профи! Умеет ли кто нибудь из вас так организовать запрос к БД, чтобы он возвращал не только данные но порядковые номера строк в результирующем наборе. Если умеете научите. Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 08:52:39 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Если примитивно то можно примерно так : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. По утрам более умные мысли в голову не идут ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 09:05:47 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Так я и сам умею. Сильно охота без временной таблицы. Очень часто приходится делать отчёты которые строятся на несложных запросах к БД. Нежелательно их усложнять до SP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 09:11:51 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
А Sanek вроде бы и не SP написал... Что тебе мешает при выборке данных для отчета писать не одну команду SELECT, а пакет этих команд, образец которых Sanek и привел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 09:47:50 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
А в Delphi мне кажеться так нельзя ... там помоему SQL сильно обрезан .... так что только SP и остается ... PS если конечно речь про Delphi ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 10:22:34 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
>Sanek и в Делфи так можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 10:23:54 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Временные таблицы не подходят т.к. строятся они под управлением некоторого клиентского приложения, а отчёты формируются в специализированном средстве. Замусоривать базу обычными таблицами тоже не выход. Необходимо органиовывать способ их гарантарованного удаления. Кроме того много различных запросов, одновременно работает множество пользователей. Имена таблиц должны быть уникальными для каждого пользователя. При построении отчётов для разных пользователей придётся их не копировать, а стоить по новой т.к. названия таблиц разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 10:34:41 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
В моем случае не Делфи, а CenturaTeam Developer, в общем то это не важно. В любом случае если выбирать SP или скрипт на клиете - SP лучше, т.к. при модификации проще поменять одну SP чем скажем 10 клиентских рабочих мест. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 10:39:32 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Незнаю, почему " в Delphi так нельзя " - у меня все работало, но посылать с клиента запрос на n-цать строк - не лучшая манера программирования. Это сугубо мое мнение. Поэтому, для запросов более 10 строк использую SP. Я что-то не догоняю, чем тебе не нравится использование временных таблиц в SP? Запустил, отработало - получил результаты. Временные таблицы удалились. Для каждого клиента будет создана СВОЯ врем табл.- т.е. пересекаться они не будут. Кроме того, в случае чего - легко поправить логику без перекомпиляции клиентского приложения. Опять же в слечае навороченных запросов с подзапросами иногда выгоднее разбить на временные таблицы, и выбирать уже из них - уменьшается время блокирования основных таблиц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 11:49:55 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Да пожлуй из всех возможных вариант с SP и временными таблицами самый оптимальный. В то же время жаль, что нет в СУБД стандартной функции скажем RowID() Вот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 12:14:43 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Способов решить эту задачу несколько. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. Соответственно нужно выбрать подходящий Вам. Обратите внимание что пример №3 входит состовляющей частью в пример №1. Поэтому на примере №2 тоже можно построить проекцию. На мой взгляд, проекция на примере №2 наиболее оптимальна, вместе с примером №5. Выбор из №2 и №5 зависит от количества данных и пр. Пример №5 будет работать только на SQL 2000. На SQL 2000 лучше использовать переменые типа table вместо временных таблиц, если это возможно. Пример №6 на мой взгляд, наиболее неудачный и я привел его для общей эрудиции. Вроде привел всё что вспомнил. Если кто знает еще способы пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 12:19:02 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
fima! Спасибо огромное. №2 это как раз то, что надо. Удивительно просто вышло до банальности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2002, 14:31:28 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к нашим баранам остаеться последний (на мой взгляд) общий вариант такого выбора : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 09:24:31 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Прошу прощения не туда попал ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2002, 09:25:27 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Изменим стоку Код: plaintext 1. на Код: plaintext 1. Теперь сортируем по [string] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2002, 10:58:56 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. можно оформить в процедуру.... правда придется формировать динамический запрос... зато универсально... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2002, 14:22:43 |
|
||
|
Как пронумеровать строки резльтирующего набора?
|
|||
|---|---|---|---|
|
#18+
вот наваял.... правда для очень уж больших данных лучше не использовать... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2002, 14:36:15 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=46&tid=1821107]: |
0ms |
get settings: |
6ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
5ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 205ms |
| total: | 356ms |

| 0 / 0 |
