Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Desil Гость
|
Добавлено: Вт Авг 12 2003 15:34 Заголовок сообщения: SQL |
|
|
Всем привет!!! Возник следущий вопрос: как вывести порядковый номер записи в наборе данных из запроса, т.е. получить чего-то вроде:
1 .............. 2 ..............
N ..............
Заранее спасибо |
|
Вернуться к началу |
|
|
maski Гость
|
Добавлено: Вт Авг 12 2003 15:43 Заголовок сообщения: Re: SQL |
|
|
используй rownum |
|
Вернуться к началу |
|
|
Desil Гость
|
Добавлено: Вт Авг 12 2003 17:20 Заголовок сообщения: Re: SQL |
|
|
rownum в SQL 7.0??? А там разве есть такое? |
|
Вернуться к началу |
|
|
Sclis Гость
|
Добавлено: Чт Авг 14 2003 05:43 Заголовок сообщения: Re: SQL |
|
|
этот вопрос всплывал уже несколько раз... и ответ всегда "нет понятия номера записи в СКЛсерверах, там эту роль играет первичный ключ". математика была в школе? есть понятие "множество", а есть "упорядоченное множество". язык СКЛ имеет дело с неупорядоченными множествами! То, что ты эти данные получаешь и хранишь последовательно - особенность архитектуры компов, и не принимается во внимание СКЛем. Он тебе выложил кучку, а как там ты их расставляешь - твои заботы. СКЛ не предназначен для работы с одной таблицей. Там отчеты собираются из набора сущностей, данные о каждой из которых разбиты на несколько таблиц. Строка отчета даже не обязана иметь тип одной из сущностей. "выдать ТОВАРЫ проданные вчера" - только частный случай (тип - товары). (тем более, что даже такая нумерация не совпадает с нумерацией в таблицах, данные о товарах могут быть разделены на несколько таблиц) Ты не можешь пронумеровать объекты разной природы сквозным способом. Поэтому нумерации встроенной в классический СКЛсервер нет. Ко всему, СКЛсервер работает с сотнями клиентов, за то время пока ты печатаешь отчет нумерация изменилась ты получил список - указал, какой объект удалить, а между получением списка и командой удаления было удалено другими клиентами несколько объектов и что сделает твоя команда? Вывод: ты можешь нумеровать данные, которые уже получил клиент, но это нумерация для "здесь и сейчас", а не для сервера (то бишь: не гоняй номер строки по сети, клиентская прога вполне сама пронумерует СТРОКИ в отчете). Тогда это зависит от языка на котором пишешь клиентскую часть Если это не отчет, а набор для навигации, то там номер будет мешать. нажал "рефреш" - ситуация изменилась - не приучай пользователя к такому понятию номера! Это в учете сделано инвентарными номерами! можешь поставить нумерацию как поле в таблице и сортировать по ней, но тогда при выборках будут пропуски, а можешь поискать, что ты делаешь не так, что тебе требуется нумерация |
|
Вернуться к началу |
|
|
Desil Гость
|
Добавлено: Чт Авг 14 2003 10:07 Заголовок сообщения: Re: SQL |
|
|
Выборка, которую я пытаюсь пронумеровать меняется редко (за день пара записей). Реально отображается только одна запись. Только вот не интересно совсем, когда я могу показать пользователю, что сейчас записей 154, а которую он из них смотрит - нет. |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Чт Авг 14 2003 13:14 Заголовок сообщения: Re: SQL |
|
|
Тебе же ВСЕ сказали про номера строк, а задачу, которую тут пытается решить целая куча народу при помощи номеров строк можно (и нужно) перефразировать в "Сколько записей из имеющейся выборки просмотрел (локально и только сейчас, именно в этот момент) человек", так вот это нужно отслеживать локально на клиенте, и помечать каким-нть образом просмотренные записи. |
|
Вернуться к началу |
|
|
Sclis Гость
|
Добавлено: Чт Авг 14 2003 14:26 Заголовок сообщения: Re: SQL |
|
|
Ты пытаешься топать по базе, нажимая кнопку со стрелочкой? как это помогают сделать визарды и компоненты в популярных средах? да? 154 записи можно получить с сервера полностью и показать пользователю список. Даже на пакеты нет нужды разбивать. Надо сеть на старых модемах, чтобы появилась надобность экономить на таких объемах. Слушай, я думаю, ты зря связался с СКЛсервером. Для малых объемов данных от него одна морока. Живет и процветает 1С со своей ниразу не клиент-серверной системой (по своей лаконичности и логичности изумительной в свем классе). хочешь переплюнуть с разбега? Ну зачем тебе сложные настройки сети, сервера и т.д. Представь, как элегантно это решается настольной системой! Помещаешь базу на открытом каталоге в сети и указываешь клиентской проге на него... У СКЛ основные преймущества: - эффективен при больших объемах данных (у тебя этого нет) - удобен для разделения доступа. (если у тебя там раз в день данные меняются, то это тоже не актуально) а недостатки: - сложный в сопровождении (твои клиенты потратятся на ДБА?) - сложный при разработке прог. (оно тебе надо, при условии, что пользователю по барабану что там за окошком стоит?) Исключение составляют учебные цели... но все равно - так не делают. |
|
Вернуться к началу |
|
|
Desil Гость
|
Добавлено: Пт Авг 15 2003 07:06 Заголовок сообщения: Re: SQL |
|
|
Я топаю по базе, нажимая кнопку со стрелкой, потому что логика во всем этом такая. Народу показывается только одна запись из-за того, что она только одна!!! на экран влезает. |
|
Вернуться к началу |
|
|
Desil Гость
|
Добавлено: Пт Авг 15 2003 07:10 Заголовок сообщения: Re: SQL |
|
|
Сейчас я локально и отслеживаю. Проблема появляется когда человек ищет какую-нибудь запись в том, что ему вернули. Как тогда быть??? |
|
Вернуться к началу |
|
|
Old_Den Гость
|
Добавлено: Пт Авг 15 2003 07:18 Заголовок сообщения: Re: SQL |
|
|
А какая проблема-то? Логика следующая: очень грубо говоря, все что вернулось клиенту запихиваем в массив, который на одну колонку шире, чем полученный, в этой колонке стоит флаг, смотрел/не смотрел и поиск по массиву не должен влиять на состояние флагов, а при отображении какой-либо записи в соответствующем месте ставится флаг, но лично я не вижу причин, чтобы запариваться с таким геморром, ради отображения для пользователя нахрен никому не нужного НОМЕРА СТРОКИ. |
|
Вернуться к началу |
|
|
Desil Гость
|
Добавлено: Пт Авг 15 2003 09:05 Заголовок сообщения: Re: SQL |
|
|
Смысла флагов я не вижу , т.к фишка не в "том смотрел не смотрел"!!! Номер записи хранить в массиве - это прикольно, но где я тебе такой масивище достану??? |
|
Вернуться к началу |
|
|
Sclis Гость
|
Добавлено: Пт Авг 15 2003 09:59 Заголовок сообщения: ну-ну |
|
|
а не надо показывать всю запись в списке. есть поля которые однозначно определяют с чем дело имеем. Список людей это ФИО и может еще пара полей в зависимости от контекста... ты в виндах проводник видел? и что с того, что файл только один и то не весь на экран влазит? в списке достаточно названий и кратких сведений, а захотел подробнее узнать - жми "свойства". все локальные базы строятся на такой навигации - список-свойства. не знаю на каком ты языке пишешь, но в большинстве из них есть для набора данных клиента понятие внутреннего вычислимого поля - можешь там номер засунуть... раз приспичило. по-мне, так ты зря за клиент-сервер ухватился. только испортишь свое впечатление об этой штуке. ладно. все. я сдаюсь. закроем тему. |
|
Вернуться к началу |
|
|
|