Установка InterBase и добавление пользователя
Как сделать инсталятор, который прописывал бы пользователя в 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).
Взято с https://delphiworld.narod.ru