Форум: "Базы";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];
ВнизАналог команды RecNo в Interbase Найти похожие ветки
← →
harismatik (2002-02-06 16:55) [0]Чем в клиент-серверной базе(Interbase) можно заменить команду RecNo (номер записи в таблице)?
← →
Johnmen (2002-02-06 17:11) [1]Вобщем-то ничем, разве что завести поле а-ля автоинкремент...
← →
harismatik (2002-02-06 17:14) [2]Да, но при удалении записей номер в этом поле будет отличаться от номера записи в таблице. Что тут посоветуете?
← →
Johnmen (2002-02-06 17:20) [3]Основываясь на концепции SQL серверных БД - решения нет,
т.к. нет понятия номер записи !
← →
Johnny Smith (2002-02-06 17:32) [4]В Oracle8i такая фунукция есть. Правда, этот самый RecNo строится в рамках текущего набора данных.
← →
Johnmen (2002-02-06 18:24) [5]>Johnny Smith : [D5, IB6.x] а не Oracle8i !
← →
Fareader (2002-02-06 18:30) [6]Если очень хочется...
Попробуй сделать что-то вроде автоинкремент (тригер на before insert с занесением значения генератора), а если удаляешь, то сделай триггер на BeforeDelete
update table1 set no=no-1
where no>old.no
Может поможет попробуй, но как отреагирует сервер на такие комбинации не знаю ;))
← →
Johnmen (2002-02-06 18:40) [7]>Fareader © : Так ни в коем случае нельзя !!!
← →
Johnmen (2002-02-06 18:42) [8]>Fareader © : Так нельзя !
← →
Fareader (2002-02-06 18:51) [9]Не спорю, мысли вслух, сам хотел похожее сделать, но вот как-то не пришлось. А интересно чего все таки получится. надо будет попробовать. Пока сам не засунешь пальцы в розетку - не поймешь, что этого делать не надо.
← →
Fareader (2002-02-06 19:57) [10]Все-таки не получается : уходят записи, идущие после удаляемой :(
← →
evgeg (2002-02-06 23:14) [11]В каждой Интербайсовской таблице есть скрытое поле, в котором хранится
номер записи. Как называется, точно не помню, что-то начинающееся с rdb$. Сходи на ib.demo.ru, поищи в документации,
или спроси на тамошней news-конференции.
Только IMHO не стоит этим полем пользоваться. В SQL-базах свои
методы работы, не надо тащить туда логику Paradox-а.
← →
harisma (2002-02-07 13:52) [12]Всем спасибо, кто откликнулся. Но все же, как заменить єту парадоксовскую логику на серверную? Дело в том, что я при помощи этой команды делаю перемещения по таблице командой MoveBy. Чем ее можно заменить?
← →
Johnmen (2002-02-07 13:59) [13]>evgeg © : ты что-то напутал :)
>harisma © : Locate"ом...
← →
Alexandr (2002-02-07 14:20) [14]1) rdb$key, но это немножко не то, что надо челу.
2) А если через BDE работать, то RecNo есть, по-моему.
3) Можно запрос делать из процедуры, а там сэмулировать RecNo
4) Можно и напрямую в select но на каждый селект для каждого юзера нужен свой генератор, да и хлопотно это...
← →
Fareader (2002-02-07 14:32) [15]Даже если через BDE - RecNo нет при работе с IB. А чем Locate не устраивает?
← →
Alexandr (2002-02-07 14:40) [16]все вспомнил.
Я в FIBPlus использовал один раз RecNo для TpFIBPlusDataSet
все работало. Показывало порядковый номер текущей записи в запросе.
И не пытайтесь спорить с этим.
← →
drpass (2002-02-07 16:30) [17]А объясните мне, недалекому, а зачем вообще может понадобиться RecNo (не в смысле "что она делает", это я знаю, а в смысле "для каких задач ее применять"). Я только смог придумать счетчик внизу экрана вида "Запись 30 из 54467" (кстати, прекрасно работает с клиент-серверной БД)
← →
Johnmen (2002-02-07 17:04) [18]>drpass © : даже инфа типа "Запись 30 из 54467" неинформативна, нет в ней никакого глубокого смысла :)
← →
drpass (2002-02-07 18:05) [19]Да нет, в принципе, знание номера текущей записи никому нафиг не нужно, но интерфейс кажется не таким унылым, и производительность работы юзера увеличивается :)
← →
Johnmen (2002-02-07 18:19) [20]>drpass © : согласен.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c