Клуб программистов. Информация по Delphi,C++,C#,.NET,PHP и т.д. . BioRay SMART: сервис фильтров: обеззараживание воды. УФ установки от изготовителя. . Все школы Москвы: частные школы москвы. Школа-пансион Сосновый бор.
Автор: de1phi | 18.12.2007 | 10:22 | В рубриках: Базы данных

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Установка/Изменение/Удаление пароля на базу данных Access

Функция для удаления, задания и изменения пароля базы данных Access используя DAO Engine.

PS. кто будет использовать - в комментариях отметьте версии ОС, Access,Delphi.

Зависимости: Dialogs,DAO2000,ComObj
Автор: savva, savva@nm.ru, ICQ:126578975, Орел
Copyright: Сапронов Алексей (Savva)
Дата: 13 сентября 2002 г.
***************************************************** }

//определяем тип, указывающий действие над паролем
type
TPasswordAction = (paSet, paChange, paRemove);

….

function ChangeAccessDBPassword(DatabaseName: string; action: TPasswordAction;
OldPassword: string = ”; NewPassword: string = ”): boolean;
var
DAO: _DBEngine;
db: Database;
ClassID: TGUID;
V35, V36: string;
oldPass, newPass: string;
begin
Result := false;
V35 := ‘DAO.DBEngine.35′;
V36 := ‘DAO.DBEngine.36′;
try
try
ClassID := ProgIDToClassID(v36);
except
try
ClassID := ProgIDToClassID(v35);
except
raise;
end;
end;
DAO := CreateComObject(ClassID) as _DBEngine;
if action = paSet then
begin
db := DAO.OpenDatabase(DatabaseName, true, false, ”);
db.NewPassword(#0, NewPassword);
end
else
begin
db := DAO.OpenDatabase(DatabaseName, true, false, ‘;pwd=’ + OldPassword);
if action = paChange then
db.NewPassword(OldPassword, NewPassword)
else
db.NewPassword(OldPassword, #0);
end;
Result := true;
except
// выводим сообщение о ошибке
on E: Exception do
begin
Result := false;
ShowMessage(e.message);
end;
end;
end.
Пример использования:

//устанавливаем новый пароль - БАЗА ДОЛЖНА БЫТЬ НЕ ЗАПАРОЛЕНА,
// иначе будет ошибка:)

procedure TForm1.Button1Click(Sender: TObject);
var
newPass: string;
begin
if InputQuery(’New password’, ‘Enter new password’, newPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + ‘db2.mdb’, paSet,
”, newPass) then
ShowMessage(’OK!’)
else
ShowMessage(’Error!’);
end;

//изменяем пароль

procedure TForm1.Button2Click(Sender: TObject);
var
oldPass, newPass: string;
begin
if InputQuery(’Old password’, ‘Enter old password’, oldPass) then
if InputQuery(’New password’, ‘Enter new password’, newPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + ‘db2.mdb’,
paChange, oldPass, newPass) then
ShowMessage(’OK!’)
else
ShowMessage(’Error!’);
end;

//удаляем пароль

procedure TForm1.Button3Click(Sender: TObject);
var
oldPass: string;
begin
if InputQuery(’Password’, ‘Enter password’, oldPass) then
if ChangeAccessDBPassword(ExtractFilePath(ParamStr(0)) + ‘db2.mdb’,
paRemove, oldPass, ”) then
ShowMessage(’OK!’)
else
ShowMessage(’Error!’);
end;

Эта запись была опубликована 18.12.2007в 22:39. В рубриках: Базы данных. Вы можете следить за ответами к этой записи через RSS 2.0. Комментарии пока закрыты, но Вы можете оставить трекбек со своего сайта.