Главная страница
    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.47 MB
Время: 0.007 c
3-85331
maxim2
2002-09-04 13:41
2002.09.26
Копировать все записи из таблицы в тхт файл.


4-85758
Gari
2002-08-07 15:08
2002.09.26
Работа с окнами.


6-85637
Sir Alex
2002-07-20 12:56
2002.09.26
В отдельном потоке работает IdHTTP, как его остановить?


3-85414
Awex
2002-09-05 19:02
2002.09.26
Русские имена метаобъетов в Interbase (Диалект 3)


1-85591
Talvin
2002-09-14 23:20
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский