Как получить номер записи в dBASE или Paradox

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

Попали в одну камеру разбойник и хакер. Разбойник:

— Я вот сижу за ограбление магазина… А ты за что сидишь? Хакер:

— Ограбил банк на 7 миллионов долларов… Разбойник:

— Да ты че… ни фига себе.. как же ты унес их из банка — денег-то офигенно много? Хакер рассказывает в общих чертах о компьютерах, сетях, взломах и т. д. Разбойник:

— Ну ни фига себе, а как же ты попался? Хакер:

— Брандмауэр засек и сработала защита.. Разбойник:

— Ах ты… Брандмауэр, твою мать… Всегда знал, что евреев опасаться надо…

function FindRecordNumber (aDataSet : TDataSet): longint;

var

cP: CurProps;

rP: RECProps;

DBRes: DBiResult;

begin

{Return 0 if dataset is not Paradox or dBase}

Result := 0;

with aDataset do

begin

if state = dsInactive then exit;

{we need to make this call to grab the cursor’s iSeqNums}

DBRes := DBiGetCursorProps(Handle,cP);

if DBRes DBIERR_NONE then exit;

{synchronize the BDE cursor with the dataset’s cursor}

UpdateCursorPos;

{fill rP with the current record’s properties}

DBRes := DBiGetRecord(Handle,DBiNOLOCK,nil,@rP);

if DBRes DBIERR_NONE then exit;

{what kind of dataset are we looking at?}

case cP.iSeqNums of

0: result := rP.iPhyRecNum; {dBase}

1: result := rP.iSeqNum; {Paradox}

end;

end;

end;

{/codecitation}

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