Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

SQL

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 Ответить с цитатой

этот вопрос всплывал уже несколько раз... и ответ всегда "нет понятия номера записи в СКЛсерверах, там эту роль играет первичный ключ". математика была в школе? есть понятие "множество", а есть "упорядоченное множество". язык СКЛ имеет дело с неупорядоченными множествами! То, что ты эти данные получаешь и хранишь последовательно - особенность архитектуры компов, и не принимается во внимание СКЛем.Smile Он тебе выложил кучку, а как там ты их расставляешь - твои заботы. СКЛ не предназначен для работы с одной таблицей. Там отчеты собираются из набора сущностей, данные о каждой из которых разбиты на несколько таблиц. Строка отчета даже не обязана иметь тип одной из сущностей. "выдать ТОВАРЫ проданные вчера" - только частный случай (тип - товары). (тем более, что даже такая нумерация не совпадает с нумерацией в таблицах, данные о товарах могут быть разделены на несколько таблиц) Ты не можешь пронумеровать объекты разной природы сквозным способом. Поэтому нумерации встроенной в классический СКЛсервер нет.
Ко всему, СКЛсервер работает с сотнями клиентов, за то время пока ты печатаешь отчет нумерация изменилась Smile
ты получил список - указал, какой объект удалить, а между получением списка и командой удаления было удалено другими клиентами несколько объектов и что сделает твоя команда?
Вывод:
ты можешь нумеровать данные, которые уже получил клиент, но это нумерация для "здесь и сейчас", а не для сервера (то бишь: не гоняй номер строки по сети, клиентская прога вполне сама пронумерует СТРОКИ в отчете). Тогда это зависит от языка на котором пишешь клиентскую часть Smile Если это не отчет, а набор для навигации, то там номер будет мешать. нажал "рефреш" - ситуация изменилась - не приучай пользователя к такому понятию номера! Это в учете сделано инвентарными номерами!
можешь поставить нумерацию как поле в таблице и сортировать по ней, но тогда при выборках будут пропуски,
а можешь поискать, что ты делаешь не так, что тебе требуется нумерация Smile
Вернуться к началу
Desil
Гость





СообщениеДобавлено: Чт Авг 14 2003 10:07    Заголовок сообщения: Re: SQL Ответить с цитатой

Выборка, которую я пытаюсь пронумеровать меняется редко (за день пара записей). Реально отображается только одна запись. Только вот не интересно совсем, когда я могу показать пользователю, что сейчас записей 154, а которую он из них смотрит - нет.
Вернуться к началу
Old_Den
Гость





СообщениеДобавлено: Чт Авг 14 2003 13:14    Заголовок сообщения: Re: SQL Ответить с цитатой

Тебе же ВСЕ сказали про номера строк, а задачу, которую тут пытается решить целая куча народу при помощи номеров строк можно (и нужно) перефразировать в "Сколько записей из имеющейся выборки просмотрел (локально и только сейчас, именно в этот момент) человек", так вот это нужно отслеживать локально на клиенте, и помечать каким-нть образом просмотренные записи.
Вернуться к началу
Sclis
Гость





СообщениеДобавлено: Чт Авг 14 2003 14:26    Заголовок сообщения: Re: SQL Ответить с цитатой

Ты пытаешься топать по базе, нажимая кнопку со стрелочкой?Smile как это помогают сделать визарды и компоненты в популярных средах?Smile да?Smile
154 записи можно получить с сервера полностью и показать пользователю список. Даже на пакеты нет нужды разбивать. Надо сеть на старых модемах, чтобы появилась надобность экономить на таких объемах.
Слушай, я думаю, ты зря связался с СКЛсервером. Для малых объемов данных от него одна морока.
Живет и процветает 1С со своей ниразу не клиент-серверной системой (по своей лаконичности и логичности изумительной в свем классе). хочешь переплюнуть с разбега?Smile
Ну зачем тебе сложные настройки сети, сервера и т.д. Представь, как элегантно это решается настольной системой! Помещаешь базу на открытом каталоге в сети и указываешь клиентской проге на него...
У СКЛ основные преймущества:
- эффективен при больших объемах данных (у тебя этого нет)
- удобен для разделения доступа. (если у тебя там раз в день данные меняются, то это тоже не актуально)
а недостатки:
- сложный в сопровождении (твои клиенты потратятся на ДБА?)
- сложный при разработке прог. (оно тебе надо, при условии, что пользователю по барабану что там за окошком стоит?)
Исключение составляют учебные цели... но все равно - так не делают.
Вернуться к началу
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    Заголовок сообщения: ну-ну Ответить с цитатой

а не надо показывать всю запись в списке. есть поля которые однозначно определяют с чем дело имеем. Список людей это ФИО и может еще пара полей в зависимости от контекста...
ты в виндах проводник видел? и что с того, что файл только один и то не весь на экран влазит? в списке достаточно названий и кратких сведений, а захотел подробнее узнать - жми "свойства". все локальные базы строятся на такой навигации - список-свойства.
не знаю на каком ты языке пишешь, но в большинстве из них есть для набора данных клиента понятие внутреннего вычислимого поля - можешь там номер засунуть... раз приспичило.
по-мне, так ты зря за клиент-сервер ухватился. только испортишь свое впечатление об этой штуке.
ладно. все. я сдаюсь. закроем тему.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...