|
Автор: Denis Alexandrovich Ivanov
|
|
- Чем схожи занимающийся сексом и юзер? - И
тот и другой входят и выходят. - А кто при этом получает
удовольствие? - Скорее всего первый и Билл Гейтс.
|
Как сделать инсталятор, который прописывал бы пользователя в
Interbase? BDE при этом не нужна совсем.
1. При помощи InstallShieldExpress формируется проект, который
включает в себя установку Interbase Server. 2. После установки
Interbase запускаешь программу, написанную на Delphi 6, которая
добавляет нового пользователя Interbase
(************************************************************************
Проект : ....
Автор : Иванов Д.А.
Назначение : Выжимки из библиотеки функций для работы со справочником
пользователей
Note: You must install InterBase 6 to use this feature.
Дата создания: 11.13.2002
История :
************************************************************************)
unit usr;
interface
uses IBCustomDataSet,IBDataBase,IBServices;
type
TUsrInfo = record
Usr:string ; //login
Uid:integer; //уникальный идентификатор, если программа ведет
//справочник пользователей в своей БД - его можно
//брать оттуда по секвенции
Grp:integer; //Group
Pas:string ; //password
end;
TUsrClass = class(TObject)
private
{ Private declarations }
public
UsrData:TUsrInfo;
dbSec :TIBSecurityService;
// добавляет или редактирует пользователя в Interbase
function UpdateUser: string;
end;
TUsrLib = class(TUsrClass)
private
{ Private declarations }
public
procedure AddNewUserToInterbase;
end;
var
clUsr:TUsrLib;
implementation
uses SysUtils,Controls,db,windows,QDialogs;
(***************** Добавляет или редактирует пользователя ***************)
function TUsrClass.UpdateUser: string;
//Usrid = 0 - новый пользователь
var Edes:string; //Описание ошибок
begin
try
if UsrData.Usr = '' then Edes:= 'не указан login пользователя';
if UsrData.Uid = 0 then Edes:= 'не указан id пользователя';
if UsrData.Grp = 0 then Edes:= 'не
if UsrData.Pas = '' then Edes:= 'не указан пароль пользователя';
if EDes < > '' then raise Exception.Create(Edes);
//Добавляем пользователя в interbase
with dbSec do begin
if not Active then Active := True;
UserName := UsrData.Usr;
UserID := UsrData.Uid;
GroupID := UsrData.Grp;
Password := UsrData.Pas;
try
DisplayUser(UserName);
if UserInfo[0] = nil then AddUser else ModifyUser;
except
Edes:='Ошибка добавления пользователя в interbase security';
raise Exception.Create(Edes);
end;
//раздача если нужно права доступа пользователя на таблицы
(* EDes:= GrantData(UsrData.Usr);
if EDes < > '' then raise Exception.Create(Edes);
*)
end;
except
if EDes = '' then EDes:= 'Ошибка добавления пользователя в interbase security';
end;
Result:= EDes;
end;
procedure TUsrLib.AddNewUserToInterbase;
var Edes:string; //Описание ошибок
begin
UsrData.Usr := 'ida' ;
UsrData.Uid := 123 ;
UsrData.Grp := 1 ;
UsrData.Pas := 'pass';
EDes:= UpdateUser;
if EDes < > '' then raise Exception.Create(Edes);
end;
begin
clUsr:=TUsrLib.Create;
end.
|
Установку Interbase 6.0 я пробовал делать двумя системами
создания инсталляций:
- InstallShield - Wise Install Builder.
Для обоих использовал готовые скрипты с сайта
http://ibinstall.defined.net/. По результатам могу сказать, что Wise
удобнее и проще в инсталляции. Кроме того у него есть текстовый
редактор скрипта, что нашему брату шибко нравится. Установка и
запуск IBGuard проходит как и в фирменном варианте сразу (Silent
Install). |