Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

Номер записи   Найти похожие ветки 

 
desha   (2002-09-01 12:40) [0]

Мастера! Не ужели никто не подскажет, как узнать номер записи НД? Recno не работает для Query и в хелпе об этом написано. А как же быть?


 
sniknik   (2002-09-01 12:51) [1]

Вряд ли кто подскажет. IB это как я понимаю тапа MSSQL-я sql server а в них номер записи не поддерживается (сервер сам решает куда запись положить).
А вот как же быть? можно. Обычно вставляют дополнительное поле индефикатор (автоикремент) это и будет номер по порядку.
и еще уточни чего тебе надо номер записи НД или всетаки номер в выборке Query.


 
desha   (2002-09-01 13:12) [2]

To shiknik
Первоначально надо было первое. Теперь бы просто узнать номер в выборке Query.


 
Anatoly Podgoretsky   (2002-09-01 13:28) [3]

Какую смысловую и полезную нагрузку несет этот номер


 
sniknik   (2002-09-01 14:48) [4]

Номер в выборке, не раз обсуждалось сдесь и я видел довольно простое решение именно для IB (чтото вроде переменной в селекте которая автоикрементная но IB я не знаю а MSSQL такого нет, или тоже не знаю :-( ). И еще было через вычисляемое поле (с извращениями). Но довольно давно видел уже наверно ушло в дайджесты (архив форума) самому искать неохота. :-)

а действительно зачем это тебе? если для репорта то там переменную можно вставить а в гриде... ? ну непонятно.


 
desha   (2002-09-01 20:33) [5]

Просто нужно спозиционироваться на нужную запись в таблице. Про запись ничего не известно, кроме ее номера в выборке.


 
Anatoly Podgoretsky   (2002-09-01 20:43) [6]

Для этого доджен быть или первичный ключ или уникальный индекс


 
sniknik   (2002-09-01 21:05) [7]

SELECT (Select Sum(1) From Products AS t1 Where t1.ProductID<= t2.ProductID) AS mynr, t2.* FROM Products AS t2

извини но это для MSSQL класический способ пойдет для IB? хрен знает. ProductID здесь именно первичный ключ.


 
sniknik   (2002-09-01 21:19) [8]

Про запись ничего не известно кроме ее номера в выборке --?
не боишся промахнутся? надо бы поточней позиционироватся. а то две последовательные выборки могут вернуть строки с различной нумерацией. лутше поставь на таблицу автоинкрементное поле и по нему определяйся поточней будет.


 
Shtukatur   (2002-09-02 07:02) [9]

create table #rank
( rank int indentity noy null,
id int
)

insert #rank
select ID_Record from Records order by ...

select rn.rank, ...
from Records rc
join #rank rn on rn.ID = rc.ID_Record
order by rc. ..

drop table #rank

rn.rank - это номер записи, но это гемор

лучше используй TClientDataSet, там RecNo работает.


 
Praco   (2002-09-02 09:08) [10]

Самое простое решение :
sniknik © (01.09.02 21:05)

Shtukatur © (02.09.02 07:02) - работать не будет, в IB нет временных табличек.

Для IB самое быстрое решение - хранимая процедура For Select и в блоке Do увеличение инкрентной переменной.

desha © (01.09.02 20:33)
"Просто нужно спозиционироваться на нужную запись в таблице. Про запись ничего не известно, кроме ее номера в выборке."
Не применяй номер записи в выборке для ее поиска в базе - это гарантированный путь к ошибкам. Однозначно найти запись можно только по потенциальному ключу.





 
desha   (2002-09-02 12:27) [11]

Спасибо, это уже и сам понял. Только не понятно, зачем для tQuery есть RecordCount и оно работает, но RecNo тоже ест, но не работает даже документально....


 
ЮЮ   (2002-09-03 03:33) [12]

>Только не понятно, зачем для tQuery есть RecordCount и оно работает, но RecNo тоже ест, но не работает даже документально

Потому что RecordCount - это объективная реальность, количество записей, удовлетворяющих условию запроса.


 
dimanew   (2002-09-03 07:46) [13]

можно сделать так:
Обьявляешь класс TMyGrid = class (TDBGrid)
Затем где-нибудь такое:
TFriendGrid(Dbgrid).DataLink.ActiveRecord


 
Basic   (2002-09-04 12:37) [14]

Можешь попробовать еще вариант, в книжке видел, но сам не пробовал.
Делай связь с основной бд, и с нее бери реальный номер


Query1.GotoCurrent(Table1);
showmessage(inttostr(Table1.Recno));


 
Fareader   (2002-09-04 14:08) [15]

Ставим FIBPlus и юзаем RecNo (для конкретного НД), а также получаем еще много других вкусностей


 
Anatoly Podgoretsky   (2002-09-04 14:20) [16]

ЮЮ © (03.09.02 03:33)
Добавим "отфетченных" на данный момент



Страницы: 1 вся ветка

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

Наверх





Память: 0.48 MB
Время: 0.008 c
3-85315
Kurt
2002-09-06 15:53
2002.09.26
Люди помогите с CtrlGrid-ом!


4-85766
Serious Sam
2002-08-12 10:31
2002.09.26
Полный путь к разделу реестра...


3-85351
pavit
2002-09-04 11:49
2002.09.26
Самостоятельное соединение с базой через ADOConnection


6-85629
Rammst
2002-07-25 17:43
2002.09.26
Mail


3-85397
MemoryLeak
2002-09-05 18:41
2002.09.26
Не работает запрос!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский