... \\ *Пример 1* {code} SET TERM ^ ;SET TERM ^ ; CREATE PROCEDURE GLN2_USR_ADD ( PARENT_ID INTEGER, LOGIN VARCHAR(32), NAME VARCHAR(128), EMAIL VARCHAR(128), NET_SIZE INTEGER, END_USER SMALLINT, PSW VARCHAR(16), AD_IS INTEGER, SUID NUMERIC(18,0), BALANCE NUMERIC(15,2), COMMENT VARCHAR(1024), ENABLED INTEGER, IP_STR VARCHAR(16) ) RETURNS ( USER_ID INTEGER) AS begin select user_id from gln_usr_add(:PARENT_ID,:LOGIN,:NAME,:EMAIL,:NET_SIZE,:END_USER,:PSW, :AD_IS,:SUID) into user_id; --Обновим баланс(остаток на начало мес) пользователя update users set enabled=:enabled, ostatok=:BALANCE*10000000000 where id=:user_id; update users set --установим ip адрес users.ip=uf_string2ip(:ip_str), --отключим предупреждение приближения к лимиту users.limit_warning=null, --Автоматический акт users.auto_account=1, --Дата следующего автоматического акта users.next_auto_acount='01.07.2008', --Сменим тип авторизации на подключение через агента users.auth_type=2, --Сменим кеш поле тип авторизации на подключение через агента users.auth_type_cache=2, --Разрешим почту users.allow_mail=1, --Разрешим доступ к почте из интернет users.allow_mail_internet=1 where id=:user_id; /* <-расскомментируйте этот блок --Добавим атрибут комментарий INSERT INTO ATTRIBUTE_VALUES ( USER_ID, ATTRIBUTE_ID, ATTRIBUTE_VALUE) VALUES ( :USER_ID, 2, :comment); 'Наименование' id=2 */ suspend; end ^ SET TERM ; ^ GRANT EXECUTE ON PROCEDURE GLN_USR_ADD TO PROCEDURE GLN2_USR_ADD; GRANT SELECT,UPDATE ON USERS TO PROCEDURE GLN2_USR_ADD; GRANT INSERT ON ATTRIBUTE_VALUES TO PROCEDURE GLN2_USR_ADD; GRANT EXECUTE ON PROCEDURE GLN2_USR_ADD TO SYSDBA; {code} *Пример 2* {code} SET TERM ^ ; create procedure GLN_USR_ADD3 ( IDENTIFY varchar(128), LOGIN varchar(32), PSW varchar(16), PARENT_ID decimal(15,2), TARIFF_NO integer, OSTATOK decimal(15,2), FINANCE_USER smallint, ENABLED smallint, CONTRACT_NUMBER varchar(32), REAL_ADDRESS varchar(1024), PHONE varchar(1024), AUTH_TYPE varchar(10), PULL_ID varchar(16), ROUTER_IP varchar(32), ROUTER_VLAN varchar(32), ROUTER_PORT varchar(32)) returns ( USER_ID integer) as begin -- непосредственно создание пользователя select USER_ID from GLN_USR_ADD(:PARENT_ID,:LOGIN,:IDENTIFY,'',1,1,:PSW,0,0) into USER_ID; -- обновление остатка update USERS set ENABLED=:ENABLED, OSTATOK=:OSTATOK*10000000000 where ID=:USER_ID; -- обработка потенциальных null'ов if (ROUTER_IP = '') then ROUTER_IP=NULL; if (ROUTER_VLAN = '') then ROUTER_VLAN=NULL; if (ROUTER_PORT = '') then ROUTER_PORT=NULL; if (AUTH_TYPE = '') then AUTH_TYPE=1; if (PULL_ID = '') then PULL_ID=NULL; -- дополнительные поля update USERS set --отключим предупреждение приближения к лимиту USERS.LIMIT_WARNING=null, --установим авторизацию USERS.AUTH_TYPE=:AUTH_TYPE, USERS.AUTH_TYPE_CACHE=:AUTH_TYPE, --разрешим почту USERS.ALLOW_MAIL=1, USERS.ALLOW_MAIL_INTERNET=1, --поставим ему роутер_ип, влан и порт USERS.ROUTER_IP=uf_string2ip(:ROUTER_IP), USERS.ROUTER_VLAN=:ROUTER_VLAN, USERS.ROUTER_PORT=:ROUTER_PORT, --выставим тариф USERS.TARIFF_NO=:TARIFF_NO, USERS.TARIFF_ID_CACHE=:TARIFF_NO, --выставим абоненту финансовость USERS.FINANCE_USER=:FINANCE_USER, --установим номер договора USERS.CONTRACT_NUMBER=:CONTRACT_NUMBER, --установим номер пула USERS.PULL_ID=:PULL_ID where ID=:USER_ID; --укажем телефон и адрес пользователя insert into ATTRIBUTE_VALUES (USER_ID, ATTRIBUTE_ID, ATTRIBUTE_VALUE) values (:USER_ID,1,:PHONE); insert into ATTRIBUTE_VALUES (USER_ID, ATTRIBUTE_ID, ATTRIBUTE_VALUE) values (:USER_ID,3,:REAL_ADDRESS); end {code} ---- Если не подключается и пишет "Undefined service gds_db/tcp" Положить файл gds32.dll в system32, взять можно из каталога с ICSManager В файле C:WINDOWS\services проверьте наличие записи : gds_db 3050/tcp gds_db 3050/udp если запись отсутствует то необходимо ее добавить и после этого продолжить установку клиентской части.\|
|