![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение пароля БД Paradox из приложения [D5, Paradox]
ks © (2005-09-08 10:19:00)День добрый!
Подскажите пожалуйста можно ли изменить пароль доступа к БД типа Paradox (заданый при проектировании) из приложения которое с ней работает, если да, то каким образом это можно сделать?
Пробовал использовать процедуры
AddPassword
RemovePassword
выполненяется без ошибок, но пароль остаётся прежний.
ks (2005-09-08 17:22:00) [1]проверил - результат тот же, при повторном запуске приложения действителен старый пароль, новый не проходит...
в чём может быть причина? В документации написано что должна работать замена пароля через:
AddPassword
RemovePassword
может есть какие то нюансы не описаные в документации...
Bob (2005-09-08 16:00:00) [2]
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;
взято из DelphiWorld. работает или нет - сказать не могу. проверь