Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Аналог следующего update на Access-e [MySQL, Access]


Страницы:   1 2 3

Dmitry S ©   (2008-08-05 18:28:00) 

MySQL:

SET @i=0;
UPDATE `table` SET `field`=(@i:=@i+1) WHERE ... ORDER BY [name];

Как сделать тоже самое на Access-e?
Устно говоря, задача такая: пронумеровать по порядку таблицу в при определенной сортировке.


Dmitry S   (2008-08-06 14:42:00) [1]

В поле, как и в любом другом.
Вопрос не в этом!


Сергей М.   (2008-08-06 14:33:00) [2]


> Вообще то хранит


Где ? Показывай ..


Dmitry S   (2008-08-06 14:28:00) [3]


> И НЕ хранит в контейнере нумерацию листов)

Вообще то хранит, но автоматически обновляет данное поле (я имею ввиду саму надпись номера страницы).


> Palladin ©   (06.08.08 14:16) [47]

Вероятно этот полный бред и нужно вывести, потому что данная нумерация нужна не только для отображения.

Отнеситесь к задаче не как к реальной, а как к тестовой на каком либо экзамене.


Сергей М.   (2008-08-06 14:19:00) [4]

Ему про фому, а он все про ерему гнет)


> Dmitry S ©   (06.08.08 13:52) [45]



> изза 10 строк тащить из базы еще 15000 .. нумеровать


Это твоислова ?

Так вот Ворд именно это и делает)

И НЕхранит в контейнере нумерацию листов)


Palladin   (2008-08-06 14:16:00) [5]

какой глупоко ректальный подход к нумерованию в определенном порядке, нужному толькодля отображения, а не для хранения... это что'ж это... 10 подряд запросов к таблице - 10 подряд апдейтов всей таблицы... от маразм... при чем никакой из них к нужному результату не приведет... при последующей выборке в надежде на упорядоченность вполне вероятно получишь полный бред...


Medbe}I{onok XML   (2008-08-06 13:57:00) [6]

пациент безнадежен. мы его теряем


Dmitry S   (2008-08-06 13:52:00) [7]


> По ассоцииации с СУБД считай что Ворд являет собой при этом
> клиента.

А ты считай, что СУБД это Ворд, а клиент это ты. Ты знаешь что тебе нужны страницы с 300 по 1000. Ты делаешь запрос "300-1000", получаешь (через принтер) свой результат пронумерованный с 300 по 1000. Ты ведь не будешь печатать весь документ, затем выбирать из него нужные тебе страницы.


Сергей М.   (2008-08-06 13:46:00) [8]


> Пример из жизни


Хреновый пример, за отмазку не канает)

Прежде чем отправить задание на печать Ворд засосал из файла весьдокумент.


> нужно ли тебе видеть все остальные страницы, чтобы продолжить
> печать, или достаточно в диалоге печати задать диапазон
> печати "300-1000"?


Мне не нужно. А вот Ворду нужен весьдокумент, чтобы расчитать, с какого "места" начинается 300-я страница.

По ассоцииации с СУБД считай что Ворд являет собой при этом клиента. И прежде чем юзер узрит нумерацию интересующих юзера листов (хоть на бумаге хоть на экране - монопенисуально), Ворд вынужденпрочитать и отрендерить весь документ.


Dmitry S   (2008-08-06 13:45:00) [9]


> Заведи локальное поле Statusб в которое пиши по мере необщрдимости
> - напечатано, или нет.

Потом выборку по этому полю, а нумеровать то как?


Ega23   (2008-08-06 13:43:00) [10]


> Ок. У каждой строки, к примеру, есть флаг - напечатана она
> или нет. Необходимо вывести строки, которые до этого не
> были напечатаны? Как тогда нумеровать?


Заведи локальное поле Statusб в которое пиши по мере необщрдимости - напечатано, или нет.


Dmitry S   (2008-08-06 13:41:00) [11]


> Medbe}I{onok XML ©   (06.08.08 13:38) [39]

Ок. У каждой строки, к примеру, есть флаг - напечатана она или нет. Необходимо вывести строки, которые до этого не были напечатаны? Как тогда нумеровать?


Dmitry S   (2008-08-06 13:40:00) [12]


> Ega23 ©   (06.08.08 13:29) [37]

Думаю проблема в понимании самого смысла данного поля. Назову его по другому. Не порядковый номер, а позиция, которая строго определена определенными условиями.
И когда пользователь сортирует таблицу по полю Value, он все равно видит позицию такой, какая она есть.
Просто так совпало, что позиция - это номер строки при определенной сортировке. А так это такое же поле как и Name и Value.


Medbe}I{onok XML   (2008-08-06 13:38:00) [13]

чтобы продолжить печать, или достаточно в диалоге печати задать диапазон печати "300-1000"? Понимаешь о чем я?

inputbox('скажите начальный номер' .....)

dataset.MoveBy();
while not eof do
вывод на принтер;
инкремент номера строки;
next;
end;


Dmitry S   (2008-08-06 13:32:00) [14]


> С другой стороны, как юзер узнает , что ему нужно оперировать
> с M записями, начиная с N-ной, пока он не увидит все K записей,
>  среди которых фигурируют эти самые N интересующих его записей
> ?

Легко.
Пример из жизни: Ты печатаешь Word-документ из 1000 страниц с нумерацией. На 300ой странице принтер дает сбой. Ты видишь, что последняя страница 299, нужно ли тебе видеть все остальные страницы, чтобы продолжить печать, или достаточно в диалоге печати задать диапазон печати "300-1000"? Понимаешь о чем я?


> sniknik ©   (06.08.08 13:19) [31]

Вот это уже интереснее. Задача усложняется еще тем, что простым name<="'table.name'" тут не обойтись, потому что в задаче сортировка задается по полям двух таблиц. Но от этого уже можно исходить! Спасибо.


Ega23   (2008-08-06 13:29:00) [15]


> Я упростил задачу до минимума еще в [0], зачем усложнять?


Я ещё раз тебя спрашиваю:

Я получил на клиент НД в таком виде:

ID  Name  Value
__ _____  ____
1  A        18
2  B        15
3  C        44


Теперь на клиентея отсортировал эти данные по Value (имею право)

ID  Name  Value
__ _____  ____
2  B        15
1  A        18
3  C        44


Нумерация сбилась нафиг.
Вопрос: зачем её тянуть с сервера, если на клиенте один хрен придётся перестраивать? Это и удобнее и проще и идеологически более правильно.


Medbe}I{onok XML   (2008-08-06 13:24:00) [16]

В данной задаче не используются ни компоненты-отчеты

то есть цикл и вывод на tprinter ?
Монопенисуально.
Текущий номер строки все равно есть.


Medbe}I{onok XML   (2008-08-06 13:22:00) [17]

а кто здесь недавно про печать строк говорил?


Сергей М.   (2008-08-06 13:22:00) [18]

И вообще, всякий раз апдейтить на сервере таблицу ради сиюсекундного каприза юзера иначе как маразмом не назовешь.


Dmitry S   (2008-08-06 13:21:00) [19]


> Ega23 ©   (06.08.08 13:16) [28]

Я упростил задачу до минимума еще в [0], зачем усложнять?

Специально для Medbe}I{onok XML. В данной задаче не используются ни компоненты-отчеты, ни даже DB-компоненты, за исключением самого TADOConnection, конечно.


sniknik   (2008-08-06 13:20:00) [20]

> с описанными ограничениями
вернее с одним... на второе плюнул. ;(


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо