function TablePasswort(var table: TTable; password: String) : Boolean;
implementation
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;
إقتباس :لكن يا اخي nabilkeb لماذا قلت لاتعول عليها كثيرا
لان ثغرات الحمايات العامة كثيرة Standard protections و لا يمكن اعتمادها في حماية قواعد البيانات...
ايضا استعمال اوامر تظهر فيها كلمات السر بوضوح دون تشفير تعتبر حماية غير فعالة، هي عبارة فقط على Simple protection و لا تحتاج الى هندسة عكسية لتخطيها، يكفي فتح البرنامج في اي محرر للوصول الى كلمة السر.
شكرا اخي جزيلا وجزاك الله عني خير
في الحقيقة انا موظفق اعمل بمصلحة المتسخدمين ومكلف بالتامينات الاجتماعية للموظيفن وصممت برنامج بسيط ليساعدني في البحث عن المعلومات فهي سرية وخاصة بالموظفين و لا**** ان يطلع عليها احد لا**** ان يطرأ عليها اي تغيير حيث لايمكنني اكتشاف ذللك فجزاك الله خيرا بماتنصحني