{Извлекает физический номер записи 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;
|