Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 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 © : согласен.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.07;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.74 MB
Время: 0.028 c
7-19361           Прикольщик            2001-12-03 21:05  2002.03.07  
Буду орать до тех пор пока хоть кто нибудь не откликнется! Люди добрые помогите!


1-19226           maks_f                2002-02-18 10:11  2002.03.07  
Свойства объекта


14-19319          Aledo                 2002-01-21 20:31  2002.03.07  
Телеработа


3-19051           Cossys                2002-02-07 18:12  2002.03.07  
Ну что за глюк поганый!!!


3-19058           ol                    2002-02-07 16:05  2002.03.07  
Как в MSSQL в SQL работать с датами