Как поставить курсор?
Как поставить курсор?
Здравствуйте.
Как поставить курсор после TIBSQL.ExecQuery на последнюю запись?
А потом перемещать его вверх?
С уважением, Иван.
Как поставить курсор после TIBSQL.ExecQuery на последнюю запись?
А потом перемещать его вверх?
С уважением, Иван.
Тогда можно как нибудь вывести 10 последних записей, отсортированных в обратном порядке?CyberMax писал(а):Никак. Этот компонент не буферизирует записи.
Т.е.
Код: Выделить всё
SELECT FIRST 10
U.USERID, U.FIO, U.ISVIP, M.*,
RU.USERID AS REPLY_USERID, RU.FIO AS REPLY_FIO, RM.DATETIME AS REPLY_DATETIME, RM."MESSAGE" AS REPLY_MESSAGE
FROM MESSAGES M
JOIN USERS U ON U.USERID = M.USERFK AND M.MESSAGEID <= 5000 AND M.CHANNELFK = 14
LEFT OUTER JOIN MESSAGES RM ON M.REPLYMID = RM.MESSAGEID
LEFT OUTER JOIN USERS RU ON RU.USERID = RM.USERFK
ORDER BY M.DATETIME DESC
Варианты.
1. Пересортировать на клиенте. Выборка маленькая, нефиг делать. Кстати, ClientDataSet это чудненько умеет делать, если самому влом.
2. Впендюрить оный запрос в СП и тянуть из неё с нужным ордер бу.
3. Аналогично со вьюхой (наверное, я с ними не работаю)
4. Аналогично с select from select в FB2.
1. Пересортировать на клиенте. Выборка маленькая, нефиг делать. Кстати, ClientDataSet это чудненько умеет делать, если самому влом.
2. Впендюрить оный запрос в СП и тянуть из неё с нужным ордер бу.
3. Аналогично со вьюхой (наверное, я с ними не работаю)
4. Аналогично с select from select в FB2.
А так изврат?Merlin писал(а):Варианты.
Код: Выделить всё
SELECT
U.USERID,
U.FIO,
U.ISVIP,
M.*,
RU.USERID AS REPLY_USERID,
RU.FIO AS REPLY_FIO,
RM.DATETIME AS REPLY_DATETIME,
RM."MESSAGE" AS REPLY_MESSAGE
FROM
MESSAGES M
JOIN USERS U ON U.USERID = M.USERFK
AND M.CHANNELFK = 14
AND M.MESSAGEID <= 5000
AND /* Вот ЭТО */
M.MESSAGEID >= (
SELECT FIRST 1 SKIP 10
M.MESSAGEID
FROM
MESSAGES M
WHERE
M.MESSAGEID <= 5000 AND M.CHANNELFK = 14
ORDER BY M.DATETIME DESC
)
/* end Вот ЭТО */
LEFT OUTER JOIN MESSAGES RM ON M.REPLYMID = RM.MESSAGEID
LEFT OUTER JOIN USERS RU ON RU.USERID = RM.USERFK
ORDER BY
M.DATETIME
Последний раз редактировалось avenger 26 июл 2006, 16:10, всего редактировалось 2 раза.