Как получить номер записи в 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}