Поставить пароль на таблицу Paradox

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

Оформил: DeeCo

Автор: http://www.swissdelphicenter.ch

uses

Bde, SysUtils, dbtables, windows;

function StrToOem(const AnsiStr: string): string;

begin

SetLength(Result, Length(AnsiStr));

if Length(Result) 0 then

CharToOem(PChar(AnsiStr), PChar(Result));

end;

function TablePasswort(var Table: TTable; password: string): Boolean;

var

pTblDesc: pCRTblDesc;

hDb: hDBIDb;

begin

Result := False;

with Table do

begin

if Active and (not Exclusive) then Close;

if (not Exclusive) then Exclusive := True;

if (not Active) then Open;

hDB := DBHandle;

Close;

end;

GetMem(pTblDesc, SizeOf(CRTblDesc));

FillChar(pTblDesc^, SizeOf(CRTblDesc), 0);

with pTblDesc^ do

begin

StrPCopy(szTblName, StrToOem(Table.TableName));

szTblType := szParadox;

StrPCopy(szPassword, StrToOem(Password));

bPack := True;

bProtected := True;

end;

if DbiDoRestructure(hDb, 1, pTblDesc, nil, nil, nil, False) DBIERR_NONE then Exit;

if pTblDesc nil then FreeMem(pTblDesc, SizeOf(CRTblDesc));

Result := True;

end;

{/codecitation}

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