Текущий номер записи набора данных

{codecitation class=»brush: pascal; gutter: false;» width=»600px»}

{Извлекает физический номер записи xBase. Требует наличие модулей

DBITYPES, DBIPROCS, и DBIERRS в списке используемых модулей.

Функция требует на входе один аргумент типа TTable (например, Table1).}

function Form1.Recno(oTable: TTable): Longint;

var

rError: DBIResult;

rRecProp: RECprops;

szErrMsg: DBIMSG;

begin

Result := 0;

try

oTable.UpdateCursorPos;

rError := DbiGetRecord(oTable.Handle, dbiNOLOCK, nil, @rRecProp);

if rError = DBIERR_NONE then

Result := rRecProp.iPhyRecNum

else

case rError of

DBIERR_BOF: Result := 1;

DBIERR_EOF: Result := oTable.RecordCount 1;

else

begin

DbiGetErrorString(rError, szErrMsg);

ShowMessage(StrPas(szErrMsg));

end;

end;

except

on E: EDBEngineError do

ShowMessage(E.Message);

end;

end;

{/codecitation}

Добавить комментарий