![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Номер записи [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]Зачем это все?