Как сделать инсталятор, который прописывал бы пользователя в 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).
|