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

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

Номер записи [D7, IB6.x, Firebird 1.5]


Ertong ©   (2004-06-15 17:27:00) 

У меня есть таблица с ключом M_ID.
Нужно узнать под каким номером будет стоять (если вообше будет) запись (задан M_ID) в этой таблице,
если сделать некую выборку.
Это можно сделать так:
1. Сделать нужную выборку в DataSet
2. Пересмотреть последовательно все записи, пока не найду нужную.

А можно ли это сделать без передачи таблицы клиенту?


Desdechado   (2004-06-16 11:49:00) [1]

а может запрос не процедуре передавать, а просто динамически формировать и вызывать с клиента?


Ertong   (2004-06-15 20:14:00) [2]


> пишешь ХП. где нумеруешь своих клиентов.


Я хотел так сделать, но нужно передать процедуре свой SQL запрос(с клиента).
Как его потом запустить?


Ertong   (2004-06-15 20:05:00) [3]


> Sandman25 ©   (15.06.04 17:55) [4]

Это немного не то.
нужно что-то типа

create view temp
as select <position>, client_id, ...
  from clients
  where <черный ящик>
  order by <черный ящик>

select count(*)
from temp
where position<(select position from temp where client_id=myclient)

<черный ящик> - эта часть может постоянно менятся

Поле position должено содержать номер записи в отсортированом представлении
Как создать такое вычесляемое поле?


Соловьев   (2004-06-15 18:04:00) [4]

и что такое очередь? отдельная таблица? каким образом связана с клиентами?


Соловьев   (2004-06-15 18:02:00) [5]

а какой признак очереди? т.е. как узнать что этот лиент выше или ниже другого?


Sandman25   (2004-06-15 18:00:00) [6]

[5] Соловьев ©   (15.06.04 17:59)

"Это не наш метод" (с) Нужно стараться избегать курсоров.


Соловьев   (2004-06-15 17:59:00) [7]


> Нужно по ID клиента узнать номер его очереди.

пишешь ХП. где нумеруешь своих клиентов.


Sandman25   (2004-06-15 17:55:00) [8]

select count(*)
from clients
where DateField < (select DateField from clients where client_id=myclient)


Ertong   (2004-06-15 17:52:00) [9]


> Зачем это все?

Есть таблица клиентов. Клиенты стоят в очереди. Некоторые клиенты из очереди выходят (но остаются в таблице). При выходе из очереди в соответсвующем поле ставится пометка. Нужно по ID клиента узнать номер его очереди.


> не стоять, а лежать :)записи лежат паралельно горизонтальной
> линии.

:)


Соловьев   (2004-06-15 17:30:00) [10]


> Нужно узнать под каким номером будет стоять (если вообше
> будет) запись (задан M_ID) в этой таблице,
> если сделать некую выборку.

не стоять, а лежать :)записи лежат паралельно горизонтальной линии.


Sandman25   (2004-06-15 17:28:00) [11]

Зачем это все?


Наверх

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