Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

Аналог команды 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.011 c
3-19050
Dreamer
2002-02-07 19:01
2002.03.07
Написал кодик через SQL но уж лчень медленно, как его под Table переделать не могу понять :)


1-19233
Geks
2002-02-19 12:31
2002.03.07
Как правильно передать строку в DLL или правильно ее обработать?


14-19327
Zevsus
2002-01-20 22:41
2002.03.07
Найти активное приложение


3-19101
Cossys
2002-02-11 10:00
2002.03.07
QReport - нужна помощь!


14-19335
Ирина
2002-01-23 20:09
2002.03.07
описание структуры баз данных 1С