- Инсталирајте ја апликацијата Простор&Време со подразбирачките компоненти, кои ги нуди инсталациониот програм,
- Инсталирајте ја претходно подготвената база на податоци, која ја користи споменатата апликација (препорачливо со името ТССПИЦА),
- Креирајте нов 'Логин' со подразбирачката база на податоци ТССПИЦА (препорачливо креирање само преку апликацијата Enterprise Manager->New
Login;)
- Со помош на Quary Analyzer се 'поврзуваме' на базата на податоци, која ја користи апликацијата Пантheon (нпр.: Datalab) и по ред ги стартуваме постапките подготвени за пренос на податоци или ја стартуваме следната процедура во која се спомнати SQL постапките:
 |
Во кодот користиме следните ознаки (променливи), кои е потребно при инсталацијата да се заменат со соодветните имиња:
- #СЕРВЕР# заменете со именото на серверот, на кој работи базата на податоци
за Време&Простор
- #тсспица# заменете со именото на базата која ја користи апликацијата Време&Простор
|
Прво избришете ги евентуалните постоечки тригери (активатори)
drop trigger dbo.pHR_Occup2TSUsers
drop trigger dbo.pHR_Prsn2TSUsers_Delete
drop trigger dbo.pHR_Prsn2TSUsers_Insert
drop trigger dbo.pHR_Prsn2TSUsers_Update
drop trigger dbo.pHR_Param2TSUsers
Првиот тригер при промена на називот на професијата во Пантheon го менува називот
и во Време&Простор.
create trigger [dbo].[pHR_Occup2TSUsers] on tHR_SetOccup
for update as
set nocount on
set xact_abort on
if Update(acName)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set Occupation = (select acName from vHR_SetOccup where acOccup = (select acOccup from inserted))
where ID in (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from vHR_Prsn where acOccup = (select acOccup from deleted))
end
set xact_abort off
Вториот тригер при бришење на работникот во Пантheon го брише работникот и во
Време&Простор.
create trigger [dbo].[pHR_Prsn2TSUsers_Delete] on tHR_Prsn
for delete as
set nocount on
set xact_abort on
delete #СЕРВЕР#.[#тсспица#].[dbo].USERS
from #СЕРВЕР#.[#тсспица#].[dbo].USERS, Deleted
where Id = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
set xact_abort off
Третиот тригер при внесување на нов работник во Пантheon внесува работникот и во Време&Простор.
create trigger [dbo].[pHR_Prsn2TSUsers_Insert] on tHR_Prsn
for insert as
set nocount on
set xact_abort on
-- Хост: 1 - Вработен 2 - Посетител
insert into #СЕРВЕР#.[#тсспица#].[dbo].USERS (HOST, ID)
select 1, (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from inserted)
set xact_abort off
Четвртиот тригер при промена на податоците за работникот (презиме, име, адреса,
телефон, датум на раѓање, оддел, е-пошта) во Пантheon ги менува овие вредности
и во Време&Простор.
create trigger [dbo].[pHR_Prsn2TSUsers_Update] on tHR_Prsn
for update as
set xact_abort on
set nocount on
if Update(acSurname) or Update(acName) or Update(acStreet) or Update(acCity) or Update(acCountry)
or Update(acPhone) or Update(adDateBirth) or Update(acDept) or Update(acEmail)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set LASTNAME = RTrim(acSurname),
FIRSTNAME = RTrim(acName),
ADDRESS = acStreet,
CITY = acCity,
STATE = acCountry,
PHONE = acPhone,
BIRTH = adDateBirth,
EMAIL = Inserted.acEmail
from Inserted
where ID = Inserted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
end
if Update(acPicture)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set PICTURE = vHR_Prsn.acPicture
from #СЕРВЕР#.[#тсспица#].[dbo].USERS, vHR_Prsn, inserted, deleted
where vHR_Prsn.acRegNo = inserted.acRegNo
and ID = deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and vHR_Prsn.acWorker = inserted.acWorker
and vHR_Prsn.acWorker = deleted.acWorker
end
if Update(acOccup)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set OCCUPATION = vHR_SetOccup.acName
from vHR_SetOccup, Inserted, Deleted
where vHR_SetOccup.acOccup = Inserted.acOccup
and ID = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and Inserted.acWorker = Deleted.acWorker
end
if Update(acRegNo)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set ID = Inserted.acRegNo
from Inserted, Deleted
where ID = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
and Inserted.acWorker = Deleted.acWorker
end
set xact_abort off
Петтиот тригер при промена на називот на нашата компанија во Пантheon го менува називот
и во Време&Простор.
create trigger [dbo].[pHR_Param2TSUsers] on tPA_SysParam
for update as
set nocount on
set xact_abort on
if Update(acOurCompany)
begin
update #СЕРВЕР#.[#тсспица#].[dbo].USERS
set COMPANY = (select acOurCompany from Inserted)
where COMPANY = (select acOurCompany from Deleted) collate SQL_Slovenian_CP1250_CI_AS
end
set xact_abort off
Шестиот тригер при промена на одделот на вработениот во Пантheon го менува одделот
и во Време&Простор.
create trigger [dbo].[pHR_Prsnjob2TSUsers_UpdIns] on
tHR_Prsnjob
for update, insert as
set xact_abort on
set nocount on
if Update(acDept) or Update(acActive)
begin
update #СЕРВЕР#.[тсспица].[dbo].USERS
set DEPARTMENT = I.acDept
from Inserted I
join vHR_Prsn D on D.acWorker = I.acWorker
where I.acActive = 'T'
and ID = D.acRegNo collate
SQL_Slovenian_CP1250_CI_AS
end
Првиот SQL, кој е документиран/неактивен (активираме, ако ги отстраниме првите два
знака --) ги брише постоечките работници во Време&Простор. УПАТСТВО!!! Во случај,
да го стартувате овој израз, ќе бидат избришани сите работници и овие податоци нема да можат
да се обноват.
--delete from #СЕРВЕР#.[#тсспица#].[dbo].USERS
Вториот SQL внесува корисници од Пантheon во Време&Простор. УПАТСТВО!!! При
секое стартување на овој израз, се пренесуваат сите работници од Пантheon во Време&Простор,
така што при повеќекратно стартување, работниците ќе бидат внесени повеќепати.
insert into #СЕРВЕР#.[#тсспица#].[dbo].USERS (Lastname, Firstname, Address, City, State, Phone, Fax, ID, Birth,
Occupation, Bdgno, Company, Department, Subdepartment, Host, Picture, EMail, Pin, BdgChangedOn, Other)
select RTrim(cast(acSurname as VarChar(40))) as LastName,
RTrim(cast(acName as VarChar(25))) as FirstName,
cast(acStreet as VarChar(50)) as Address,
cast(acCity as VarChar(50)) as City,
cast(acCountry as VarChar(50)) as State,
cast(acPhone as VarChar(15)) as Phone,
cast('' as VarChar(15)) as Fax,
cast(acRegNo as VarChar(13)) as ID,
adDateBirth as Birth,
cast((select acName from vHR_SetOccup where acOccup = D.acOccup) as VarChar(50)) as Occupation,
null as Bdgno,
cast((select acOurCompany from tPA_SysParam) as VarChar(50)) as Company,
cast(acDept as VarChar(50)) as Department,
cast('' as VarChar(50)) as SubDepartment,
cast(1 as SmallInt) as Host,
acPicture as Picture,
cast(acEmail as VarChar(30)) as EMail,
cast('' as VarChar(6)) as Pin,
null as BdgChangedOn,
null as Other
from vHR_Prsn D
По извршените процедури следи првото стартување на апликацијата Време&Простор при кое
е потребно да се внесе претходно креираното корисничко име (логин): ТССПИЦА и соодветната
лозинка;