Запись RecNo из RecordCount

...какой метод вовращает номер текущей записи? (т.е.: Я хочу использовать это вместе с функцией RecordCount и выводить для пользователя в строке состояния нечто вроде: "Запись #n из x")

Вот функция, возвращающая номер текущей записи в наборе данных DataSet. В основном я все скопировал и расставил комментарии, которые теперь лишают меня возможности поговорить на эту тему. Могли бы вы получить эти цифирьки из DBIPROCS.INT?

function

RecordNumber(Dataset: TDataset): Longint; var

CursorProps: CurProps; RecordProps: RECProps; begin

{ Возвращаем 0, если набор данных не Paradox или dBASE } Result := 0; with

Dataset do

begin

{ Набор данных активен? } if

State = dsInactive then

DBError(SDataSetClosed); { Нам необходимо сделать этот вызов, чтобы "захватить" курсор iSeqNums } Check(DbiGetCursorProps(Handle, CursorProps)); { Синхронизируем курсор BDE с курсором набора данных } UpdateCursorPos; { Заполняем RecordProps текущими свойствами записи } Check(DbiGetRecord(Handle, dbiNOLOCK, nil

, @RecordProps)); { С каким типом набора данных мы работаем? } case

CursorProps.iSeqNums of

0: Result := RecordProps.iPhyRecNum; { dBASE } 1: Result := RecordProps.iSeqNum; { Paradox } end

; { case } end

; { with } end

; { function }

Затем, в обработчике события OnDataChange DataSet, я использовал команду:

MyTextVariable := 'Запись ' + IntToStr( RecordNumber( tImport ) ) +
' из ' + IntToStr( tImport.RecordCount ) ;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com