- Инсталирайте приложението Пространство&Време с подразбиращите се компоненти, които предлага инсталационната програма,
- Инсталирайте предварително подготвена база данни, която споменатото приложение използва (препоръчително с името TSSPICA),
- Създайте нов 'Login' с подразбираща се база данни TSSPICA (препоръчително е да се създаде само чрез приложението Enterprise Manager->New
Login;)
- С помощта на Quary Analyzer се 'свързваме' с базата данни, която използва приложението Pantheon (напр.: Datalab) и последователно стартираме процесите, подготвени за пренос на данни или стартираме следната процедура, в която са обединени споменатите SQL процеси:
 |
В кода използваме следните обозначения (променливи), които е необходимо да се заменят с подходящите имена при инсталацията:
- #СЕРВЕР# заменете с името на сървъра, на който работи базата данни
за Време&Пространство
- #tsspica# заменете с името на базата която използва приложението Време&Пространство
|
Първо изтриваме евентуални съществуващи тригери (събития)
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
Първият тригер при промяна на наименованието на професията в Pantheon променя наименованието и в Време&Пространство.
create trigger [dbo].[pHR_Occup2TSUsers] on tHR_SetOccup
for update as
set nocount on
set xact_abort on
if Update(acName)
begin
update #СЕРВЕР#.[#tsspica#].[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
Вторият тригер при изтриване на работник в Pantheon изтрива работника и в Време&Пространство.
create trigger [dbo].[pHR_Prsn2TSUsers_Delete] on tHR_Prsn
for delete as
set nocount on
set xact_abort on
delete #СЕРВЕР#.[#tsspica#].[dbo].USERS
from #СЕРВЕР#.[#tsspica#].[dbo].USERS, Deleted
where Id = Deleted.acRegNo collate SQL_Slovenian_CP1250_CI_AS
set xact_abort off
Третият тригер при въвеждане на нов работник в Pantheon въвежда работника и в Време&Пространство.
create trigger [dbo].[pHR_Prsn2TSUsers_Insert] on tHR_Prsn
for insert as
set nocount on
set xact_abort on
-- Хост: 1 - Служител 2 - Посетител
insert into #СЕРВЕР#.[#tsspica#].[dbo].USERS (HOST, ID)
select 1, (select acRegNo collate SQL_Slovenian_CP1250_CI_AS from inserted)
set xact_abort off
Четвъртият тригер при промяна на данните за работника (фамилия, име, адрес,
телефон, дата на раждане, отдел, имейл) в Pantheon променя тези стойности и в Време&Пространство.
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 #СЕРВЕР#.[#tsspica#].[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 #СЕРВЕР#.[#tsspica#].[dbo].USERS
set PICTURE = vHR_Prsn.acPicture
from #СЕРВЕР#.[#tsspica#].[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 #СЕРВЕР#.[#tsspica#].[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 #СЕРВЕР#.[#tsspica#].[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
Петият тригер при промяна на наименованието на нашата компания в Pantheon променя наименованието и в Време&Пространство.
create trigger [dbo].[pHR_Param2TSUsers] on tPA_SysParam
for update as
set nocount on
set xact_abort on
if Update(acOurCompany)
begin
update #СЕРВЕР#.[#tsspica#].[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
Шестият тригер при промяна на отдела на служителя в Pantheon променя отдела и в Време&Пространство.
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 #СЕРВЕР#.[#tsspica#].[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 #СЕРВЕР#.[#tsspica#].[dbo].USERS
Вторият SQL въвежда потребителите от Pantheon в Време&Пространство. ВНИМАНИЕ!!! При
всяко стартиране на тази команда, всички работници от Pantheon се прехвърлят в Време&Пространство,
така че при многократно стартиране работниците ще бъдат въведени многократно.
insert into #СЕРВЕР#.[#tsspica#].[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
След извършените процедури следва първото стартиране на приложението Време&Пространство, при което е необходимо да се въведе предварително създаденото потребителско име (логин): TSSPICA и съответната парола;