MZP@ !L!This program must be run under Win32 $7PEL^B* &-4@@-`B-pCODE$& `DATA@*@BSSaP,.idataB`,@.relocp0@P.rsrc--4@P-D-@P%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@%`@Sļ TD$,t\$0ÃD[Ë%`@%|`@%x`@%t`@%p`@%l`@%h`@%d`@SVU@>u:hDjȅu3^[áU@ U@3ҋDBdu^[Ð@ËSVu3^[ËPVP XB^[ËP QU@U@SVWUQ$]$PV;SS ;uCC FF;Cu C F;uË֋Vu3Z]_^[SVWU؋2C;rpJk ;wb;uBCB)C { uH9?΋zϋk ;u){ * J ${{ +|$+s ԋu3 ;u3YZ]_^[ÐSVWڋ} sjh Vj;t#ӸU@luhjP3_^[ÐSVWUًCjh hU;usjh VU;t#ӸU@uhjPb3]_^[ÐSVWUL$$D$3҉T$ $ʼnD$U@Q;s;wFC ;D$w;;t$st$C ;D$ vD$ hjVu U@߁U@uD$3҉|$ tD$T$D$ +D$T$B]_^[SVWUL$$Ћ$T$D$(D$+ŋT$B5U@<^~ ;v;|$v|$;vjh+WS&u D$3҉ 6U@u ]_^[ËSVWUQ؋4$$+$A5U@8^~ ;$s$;s;vh@+WSu U@6U@uZ]_^[Í@SVWUU@?]3;{ ,΋׋C>tPFCF)C { u>5;uɋ֋>t!̋֋<$űV3YZ]_^[ËSVWU $U@?];t;su;suW;{ L$+S CC |$t3L$ T$]|$ uL$ T$D$%$3҉L$׋|$t4L$ T$|$ fL$ T$D$$3҉Hk;u:;{ 5 $׋q$8t($@C$@)C { u$3҉]_^[ÐSVW$?4$;s[ϋ+ӋL$׸U@]\$tL$ T$&D$ D$D$D$|$tT$U@3_^[U3Uh.@d2d"hU@9=5P@t hU@.U@U@V@xhj V@= V@t/ V@3ɉL@=uU@@V@U@3ZYYdh5@=5P@t hU@U堬U@]US=U@3Uh@d2d"=5P@t hU@fU@ V@P43 V@U@hjCP%U@uU@U@V@uU@tU@PU@u3ZYYdh@=5P@t hU@hU@q[]S;V@u PV@PH8;uy V@3҉T$y V@TP[ËP[Í@V@J;rJ ;rV@uU@3ҋÐSʃ|[Ã| ʁ [U@ЃU@Ë |Ã| ʁƒ SVЃʁt U@ځ+Ë3t U@t Ѓ r+;pt U@ދ^[Í@SVW3t %؋uXF؃#_^[SVWU$؅kC Ѝ 7+у ++Ń }L$+S׋L$׃Fl$t4+֋cD$SS ;s 7+T$$$ ]_^[Í@SVW߉sƃ p7օy V@Du V@\[:CZ,<| ֋uV@V@CZ_^[Í@=V@~@=V@ } U@+V@V@V@3V@3V@ËSVW<$L$׸V@\$u3R;s )GGt$ ;sGG;uoV@GV@_^[Í@S؋ԍCD<$t Wu3YZ[ÐSV؋̍V<$t &u3YZ^[Í@3҅y= V@Tu@=uSVWUV@V@U@;sC;~{s[;sB;tc ؅uNu3;u)u} }u3EV@5V@փU@5U@LS+ƃ | ֒T;uCƃ ËփU@5U@]_^[USVW؀=U@u t~ 3ET3Uh@d1d!=5P@t hU@  } Åy V@Ttyà B;uÅy V@3|&˅y= V@D MMAMƋREU@U@ ;V@J)V@=V@ } V@3V@V@V@ӃEU@U@ 2E3ZYYdh@=5P@t hU@ E_^[YY]Í@UQSVW3U@=U@ufuU@Ea3Uh!@d1d!=5P@t hU@uU@ U@%)U@tEƃ P |tU@ +;PtU@ ڋTË;=V@u,)V@V@=V@<~3EA t} U@ 7)ǃxt 8tx } U@ PӋ'U@E3ZYYdh!@=5P@t hU@WE_^[Y]ËSVWU } }Nj;u;+։$;V@u8$)V@$V@=V@ L$V@$)V@3u ËP$<$ |ދ$Ã+ljD$;V@ugV@;D$|SD$)V@D$V@=V@ }V@V@5V@3V@+U@E% u>uMӋ‹H $ $;L$}$ڋ$)D$,D$)$<$ |Ƌ$n:4$ރ#.t!%Ë؋T$t  3+U@E% uYZ]_^[ËUQSVW؀=U@uu 3E3Uh%$@d2d"=5P@t hU@֋t]6Ã%;}ƅt׋ˑ}3ZYYdh,$@=5P@t hU@^E_^[Y]Í@S~$@@؅u 3ۋ[St(@@؅t `3ۋ[É@@ SV؀=P@t ֋P@u w 3Ê0@@3Ë^[Ë$S[VWƉ׉9wt/x*_^Ít1|9x_^SV3fCf=r/f=w)f%f=uSuS$ts8P@t g_^[ËSVWPtl11ۿ F t-tb+t_$t_xtZXtU0uFxtHXtCt t-0 w%9w!؊Fut }T F~KxI[)GŊF뜿Ft߀ar 0 v wЀ 9w؊FuuY12_^[Í@%`@S3juj%= t=u[ÐU @@EEPjjh('@huM3Uh'@d0d EEPEPjjhD'@EP3ZYYdh'@EP`f @@f%fUf?f f @@]SOFTWARE\Borland\Delphi\RTLFPUMaskValue- @@ËtQÀ=@@vjjjhP@Ð=@@tPPRTjjhP@XÍ@TjjhP@XÍ@=@@vPSÍ@tA9t 9u AAË=@@vPRQQTjjhP@YYZXÐ=@@vRTjjhP@ZPR=@@vTjjhP@ZXËD$@8PHtn P@҅T$ L$9t7=@@v)=@@w L$PQMX‹D$H 0‹D$H =@@v=@@wPD$RQPYZXtpHS1VWUdSPRQT$(jPh4)@RP@|$(O o_G`)@f#" AËD$T$@tJB)@SVWUjF]_^[ËD$0@ *@ B `8t Bkr1dY]_^[Í@s B1Zd$,1YdX]1ҋL$D$d ËUU=,t\=tW-t\-t=HtN`q?r6t0R=t=-t.HtHt$:-t/=t&,*&" %R ]D$@=@@wD$PtqD$%T$jPhB+@RP@\$;SCt P@҅S P@tыL$Q$1Í@1ҍEd d@*@h$V@Í@1ҡ$V@td 9udË t9uUSVW V@GtH_ p3Uh*,@d2d"~K_ DtЅ3ZYYd-_^[]ÐUSVW(V@tK03ۋx3Uh,@d2d";~C,V@t;3ZYYdP'v_^[]ÐQVW V@}Ĺ @V@u3C {(v>t!CtSB;Bt tP*{(uS${(t;u=P@tP@PV ^v]_^[ã@@Ð@@ËtJI|Ju PBXÐ~$P PZfDZP@1ÐSVWÉ։ωDžt ‰;_^[ËWPQ1uXX_ðUSVWE @@E}t93UhO0@d0d ]ES3ZYYd EE}u_^[YY]Ë@@@@ËUQE3Uh0@d2d"E@t3ZYYdh0@E;@@u E@@@@t;Uu UuY]ËUS3҉U3UhV1@d2d"jURhP-EUEUN؃}t33ZYYdh]1@E-[]U3Uh1@d0d U@u#8P@R@S@3ZYYdh1@]Ð-U@@@P@@P@@6P@P@ 0@jtPf]Ë-XV@U3Uhw4@d0d 3ZYYdh~4@ ]4@P4@ 4@1@d1@X4@Uĸ4@(@@2@@@d@@t#@@ErrorRuntime error at 000000000123456789ABCDEFh3@3@2@@3@`d`|b`b`b`aa2aJafataaaaaaaaa bb&b2bNbZblbbbbbbbccc(c4ckernel32.dllDeleteCriticalSectionLeaveCriticalSectionEnterCriticalSectionInitializeCriticalSectionVirtualFreeVirtualAllocLocalFreeLocalAllocGetVersionGetCurrentThreadIdGetThreadLocaleGetStartupInfoAGetLocaleInfoAGetCommandLineAFreeLibraryExitProcessWriteFileUnhandledExceptionFilterRtlUnwindRaiseExceptionGetStdHandleuser32.dllGetKeyboardTypeMessageBoxAadvapi32.dllRegQueryValueExARegOpenKeyExARegCloseKeykernel32.dllTlsSetValueTlsGetValueTlsFreeTlsAllocLocalFreeLocalAlloc0 000"0*020:0B0J0R0Z0b0j0r0z0000000000011112F3333d4445)5D55&7b7777777777778888$868B8Q8]8e8p8v888888888888899*9K9c999999G:g::;;;;<< <+<4<; >R>[>q>>>>>?"?L?U?e?m?s?|????????? 00000<0D0[0j0z00000001@1^1n1t1|11111 22e2l2|22222222X33333 444?4_4z4444m5Z666666 77Y7n77777778"868@8S888888)909R999;7;>;V;x;;;;;>>>+>F>[>e>j>>>>>>.?7?]?j?0!020r0y0000001I1k1w1~1111111111111222%2/2V2k2|2222222223#3-383K3S3x333333333344'434@4R4_4r44444444@$0(0,00000EN ENs?@0AHB`CxDEFGHI~ 8Ph9:;<(=@>X?p@ABCDEFG0HHI`JxKLMNOPQ R8SPThUVWXYZ[ \( ]@ ^X _p ` a b c d e f g0 hH i` jx k l m n o p q r8 sP th u v w x y z { |( }@ ~X p        0 H ` x       8PhEN0>ENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN EN0EN@ENPEN`ENpENENENENENENENENENENEN X8 <=. ,)@* J,O Pb,\֊4jV<SP $, P7LNR ls TX|(M0`hG J?܆  V!  Y7 i̡ - FR" x dZ s >+ t&1rX"pdtش*d!H H<,K^c B~(#Lle:kz j$lpTĺt|t\L f d(2L7 D^@{fH"rlSmtXB( МTmθdW ,'"j#$$`%2%T P&@'XP"),?)E*y*̂T+)ث+O+ ,lD,p,0,|,p,P-<-9-X- tf-u-p--$DVCLAL PACKAGEINFOCREATE TABLE Customer ( CustomerID integer NOT NULL PRIMARY KEY, Name varchar(40) NOT NULL, Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) CREATE GENERATOR Customer_gen `CREATE TABLE PictureFormat ( PictureFormatID integer NOT NULL PRIMARY KEY, Name varchar(10) ) ZCREATE TABLE FilmFormat ( FilmFormatID integer NOT NULL PRIMARY KEY, Name varchar(10) ) CREATE TABLE Project ( ProjectID integer NOT NULL PRIMARY KEY, CustomerID integer NOT NULL REFERENCES Customer, Directory varchar(1024), OrderNr varchar(20), OrderFor varchar(30), ResponsPerson varchar(30), ResponsPersonPhone varchar(30), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(100), EstateArea varchar(40), EstateNo varchar(40), FileNo varchar(40), ResponsScope varchar(40), UserDesign varchar(40), EstateIdentNo varchar(40), Editing varchar(40), RespAdmDept varchar(40), TechnBoardOfControl varchar(40), DeptNo varchar(40), Comment varchar(40), PictureNamePrefix varchar(20), PictureFormatID integer REFERENCES PictureFormat, FilmFormatID integer REFERENCES FilmFormat, IsActive smallint DEFAULT 0 ) CREATE GENERATOR Project_gen CREATE TABLE Preset (PresetID integer NOT NULL PRIMARY KEY, ControlKey varchar(50) NOT NULL, Timepoint timestamp, Text varchar(256) ) .CREATE INDEX Preset_idx ON Preset(ControlKey) CREATE GENERATOR Preset_gen COMMIT *INSERT INTO PictureFormat VALUES(1,'JPG') *INSERT INTO PictureFormat VALUES(2,'TIF') *INSERT INTO FilmFormat VALUES(1,'MPEG-1') *INSERT INTO FilmFormat VALUES(2,'MPEG-2') *INSERT INTO FilmFormat VALUES(3,'MPEG-4') (INSERT INTO FilmFormat VALUES(4,'DivX') COMMIT CREATE PROCEDURE AddCustomer ( Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN CustomerID = GEN_ID(Customer_gen,1); INSERT INTO Customer(CustomerID,Name,Street,Zip,City,Land,Tel,Fax,ExtraInfo) VALUES (:CustomerID,:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo); END CREATE PROCEDURE FindCustomer (Name varchar(40),Street varchar(40),Zip varchar(10),City varchar(40),Land varchar(20), Tel varchar(30),Fax varchar(30),ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (C.Name = :Name) AND ((C.Street IS NULL) OR (:Street IS NULL) OR (C.Street = :Street)) AND ((C.Zip IS NULL) OR (:Zip IS NULL) OR (C.Zip = :Zip)) AND ((C.City IS NULL) OR (:City IS NULL) OR (C.City = :City)) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo) RETURNING_VALUES :CustomerID; END wCREATE PROCEDURE GetCustomerByID (ID integer) RETURNS( Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) AS BEGIN SELECT Name,Street,Zip,City,Land,Tel,Fax,ExtraInfo FROM Customer WHERE CustomerID = :ID INTO :Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo; END kCREATE PROCEDURE UpdateCustomer ( ID integer, Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) AS BEGIN UPDATE Customer SET Name=:Name,Street=:Street,Zip=:Zip,City=:City, Land=:Land,Tel=:Tel,Fax=:Fax,ExtraInfo=:ExtraInfo WHERE CustomerID = :ID; END CREATE PROCEDURE DeleteCustomer (ID integer) AS DECLARE VARIABLE ProjectCnt integer; BEGIN SELECT count(*) FROM Project WHERE CustomerID=:ID INTO ProjectCnt; IF (ProjectCnt = 0) THEN BEGIN DELETE FROM Customer WHERE CustomerID=:ID; END END CREATE PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID); END 6CREATE PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,PictureFormat varchar(10),FilmFormatID integer, FilmFormat varchar(10),IsActive smallint ) AS BEGIN SELECT CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,P.PictureFormatID,PF.Name AS PictureFormat, P.FilmFormatID,FF.Name AS FilmFormat,IsActive FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID=PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID=FF.FilmFormatID WHERE ProjectID=:ID INTO :CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:PictureFormat,:FilmFormatID,:FilmFormat,:IsActive; END YCREATE PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID WHERE ProjectID=:ID; END cCREATE PROCEDURE DeleteProject (ID integer) AS BEGIN DELETE FROM Project WHERE ProjectID=:ID; END CREATE PROCEDURE SetProjectActive(ProjectID integer) AS BEGIN UPDATE Project SET IsActive=0 WHERE ProjectID <> :ProjectID; UPDATE Project SET IsActive=1 WHERE ProjectID = :ProjectID; END CREATE PROCEDURE PictureFormatByName (FormatName varchar(10)) RETURNS (PictureFormatID integer) AS BEGIN SELECT PictureFormatID FROM PictureFormat WHERE Name LIKE :FormatName INTO :PictureFormatID; IF (:PictureFormatID IS NULL) THEN PictureFormatID = -1; END )CREATE PROCEDURE AddPreset(ControlKey varchar(50),Text varchar(256)) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP 10 PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END END END CREATE PROCEDURE GetPresets(ControlKey varchar(50)) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST 10 DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END )CREATE TABLE DEBUGLOG(msg varchar(1024)) CREATE TABLE Customer ( CustomerID integer NOT NULL PRIMARY KEY, Name varchar(40) NOT NULL, Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) CREATE GENERATOR Customer_gen `CREATE TABLE PictureFormat ( PictureFormatID integer NOT NULL PRIMARY KEY, Name varchar(10) ) ZCREATE TABLE FilmFormat ( FilmFormatID integer NOT NULL PRIMARY KEY, Name varchar(10) ) CREATE TABLE Project ( ProjectID integer NOT NULL PRIMARY KEY, CustomerID integer NOT NULL REFERENCES Customer, Directory varchar(1024), OrderNr varchar(20), OrderFor varchar(30), ResponsPerson varchar(30), ResponsPersonPhone varchar(30), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(100), EstateArea varchar(40), EstateNo varchar(40), FileNo varchar(40), ResponsScope varchar(40), UserDesign varchar(40), EstateIdentNo varchar(40), Editing varchar(40), RespAdmDept varchar(40), TechnBoardOfControl varchar(40), DeptNo varchar(40), Comment varchar(40), PictureNamePrefix varchar(20), PictureFormatID integer REFERENCES PictureFormat, FilmFormatID integer REFERENCES FilmFormat, IsActive smallint DEFAULT 0 ) CREATE GENERATOR Project_gen CREATE TABLE Structure (StructureID integer NOT NULL PRIMARY KEY, Number varchar(40) /*Haltungsnr, Anschlussnr, Schachtbez.*/, CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer,/*Future: to table Exam ??*/ IsActive smallint DEFAULT 0,/*Future: to table Exam ??*/ IsMarked smallint DEFAULT 0 /*Future: to table Exam ??*/ ) 7CREATE INDEX Structure_Number_idx ON Structure(Number) 7CREATE INDEX Structure_Street_idx ON Structure(Street) CREATE GENERATOR Structure_gen CREATE TABLE TVInspection (TVInspectionID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Structure, FlowDirectionID integer REFERENCES Abbr, InspectionModeID integer REFERENCES Abbr /*Dorsten, ISYBAU06, ATVM149*/, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), CityMapPageNo varchar(10), StreetSurface varchar(20) /*EN13508*/, WeatherID integer REFERENCES Abbr /*ISYBAU06, ATVM14*/, Weather varchar(20), SewerNo varchar(20), Scale integer, EndOfGuarantee varchar(20), CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), /*NASSCO*/ LocationDetails varchar(255), /*NASSCO*/ FlowControlID integer REFERENCES Abbr, /*NASSCO*/ RenovationYear integer, /*NASSCO*/ SewerCategory varchar(100), /*NASSCO*/ PreCleaningID integer REFERENCES Abbr, /*NASSCO*/ DrainageArea varchar(15), /*NASSCO*/ InspPurposeID integer REFERENCES Abbr, /*NASSCO*/ Comment1 varchar(1000), Comment2 varchar(1000) ) #CREATE GENERATOR TVInspection_gen; wCREATE TABLE Manhole (StructureID integer NOT NULL PRIMARY KEY REFERENCES Structure ON DELETE CASCADE, ManholeFormID integer REFERENCES Abbr, CoordX decimal(11,3), CoordY decimal(11,3), CoordExactID integer REFERENCES Abbr, CoverHeight decimal(8,3), CoverExactID integer REFERENCES Abbr, BottomHeight decimal(8,3), BottomExactID integer REFERENCES Abbr, StatusID integer REFERENCES Abbr, FlumeShapeID integer REFERENCES Abbr, DefinitionClassID integer REFERENCES Abbr, CoverDN decimal(5,2), CoverWidth decimal(5,2), CoverShapeID integer REFERENCES Abbr, ManhShapeID integer REFERENCES Abbr, ManhDN decimal(5,2), ManhWidth decimal(5,2), TaperShaftRing smallint, ManhLowerShapeID integer REFERENCES Abbr, ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2), ManhLowerHeight decimal(5,2), NeckMaterialID integer REFERENCES Abbr, UpperPartMaterialID integer REFERENCES Abbr, LowerPartMaterialID integer REFERENCES Abbr, FlumeMaterialID integer REFERENCES Abbr, InternalProtectionID integer REFERENCES Abbr, ManholeStepID integer REFERENCES Abbr, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint ) CREATE TABLE PipeStructure (StructureID integer NOT NULL PRIMARY KEY REFERENCES Structure ON DELETE CASCADE, InnerProtectionID integer REFERENCES Abbr, SewerTypeID integer REFERENCES Abbr, MaterialID integer REFERENCES Abbr, ProfileTypeID integer REFERENCES Abbr, ProfileHeight decimal(10,5) /*cm or inch*/, ProfileWidth decimal(10,5)/*cm on inch*/, ReachLength decimal(6,2), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer REFERENCES Abbr /*Dorsten*/, DistrictNo varchar(10), PipeLength integer, WaterProtectionZone varchar(40), PositionInStreetID integer REFERENCES Abbr /*Dorsten, ISYBAU06, ATVM149*/, PositionInStreet varchar(40), SewerageDistrict varchar(40) ) CREATE TABLE Reach (StructureID integer NOT NULL PRIMARY KEY REFERENCES PipeStructure ON DELETE CASCADE, UpperManholeID integer REFERENCES Manhole ON DELETE SET NULL, LowerManholeID integer REFERENCES Manhole ON DELETE SET NULL, StartMeter decimal(6,2), EndMeter decimal(6,2), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2) ) CREATE TABLE HouseConnection (StructureID integer NOT NULL PRIMARY KEY REFERENCES PipeStructure ON DELETE CASCADE, RevManhole varchar(30), StartManholeID integer REFERENCES Manhole ON DELETE SET NULL, DistanceFromManhole decimal(6,2) ) CREATE TABLE Separator (StructureID integer NOT NULL PRIMARY KEY REFERENCES Structure ON DELETE CASCADE, ResponsiblePerson varchar(30) ) CCREATE TABLE AbstractEvent (EventID integer NOT NULL PRIMARY KEY) CREATE GENERATOR Event_gen; CREATE TABLE Event (EventID integer NOT NULL PRIMARY KEY REFERENCES AbstractEvent ON DELETE CASCADE, TVInspectionID integer REFERENCES TVInspection ON DELETE CASCADE, ChildStructureID integer REFERENCES Structure ON DELETE SET NULL, /*if the event defines a house connection*/ CodeID integer REFERENCES Abbr, Comment varchar(80), Class char(1), Joint smallint/*EN13508; NASSCO*/, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength decimal(6,2), PathLength decimal(6,2), Measure1 decimal(10,3), Unit1ID integer REFERENCES Unit, Measure2 decimal(10,3), Unit2ID integer REFERENCES Unit, VideoCounter time, RouteDamageID integer REFERENCES Abbr ) ICREATE TABLE ManholeConnection (ManholeConnectionID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Manhole ON DELETE CASCADE, TypeID integer REFERENCES Abbr, Dim decimal(7,3), Height decimal(7,3), MaterialID integer REFERENCES Abbr, ConnPosition smallint, Comment varchar(40), Coord varchar(10) ) (CREATE GENERATOR ManholeConnection_gen; CREATE TABLE LStructureStructure (StructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE, MasterStructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE, PRIMARY KEY(StructureID,MasterStructureID) ) CREATE TABLE Multimedia (MultimediaID integer NOT NULL PRIMARY KEY, TVInspectionID integer REFERENCES TVInspection ON DELETE CASCADE, Path varchar(1000) ) MCREATE TABLE Film (MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, FlowDirectionID integer REFERENCES Abbr, MPEGType varchar(10), StartTC varchar(10), StopTC varchar(10), MPEGLength integer, NumOfCopies integer, FramesPerSec integer, DropsPerSec integer, GOP integer, Flag varchar(10) ) CREATE TABLE Picture (MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, EventID integer REFERENCES AbstractEvent ) kCREATE TABLE SewerMap (MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, M11 float, M12 float, M13 float, M14 float, M21 float, M22 float, M23 float, M24 float, M31 float, M32 float, M33 float, M34 float, M41 float, M42 float, M43 float, M44 float, IsActive smallint ) CREATE GENERATOR Multimedia_gen {/*CREATE TABLE Shape (ShapeID integer NOT NULL PRIMARY KEY, ShortName varchar(20), FullName varchar(100), TotalVolume varchar(1024), TotalSurfaceArea varchar(1024), PartialVolume varchar(1024), PartialSurfaceArea varchar(1024) )*/ CREATE TABLE PressureInspection (PressureInspectionID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Structure, FlowDirectionID integer REFERENCES Abbr, ModeID integer NOT NULL REFERENCES Abbr, OrdererPresent varchar(100), ContractorPresent varchar(100), ResponsiblePerson varchar(30), WeatherID integer REFERENCES Abbr /*ISYBAU06, ATVM14*/, Weather varchar(20), Device varchar(40), Norm varchar(40), NominalPressure decimal(6,2), Reference decimal(6,2), NominalTestTime time, NominalSedation time, Volume decimal(6,2), SurfaceArea decimal(6,2), Flag varchar(5), Comment1 varchar(256), Comment2 varchar(256) ) )CREATE GENERATOR PressureInspection_gen; CREATE TABLE PressureTest (EventID integer NOT NULL PRIMARY KEY REFERENCES AbstractEvent ON DELETE CASCADE, PressureInspectionID integer NOT NULL REFERENCES PressureInspection ON DELETE CASCADE, DamageText varchar(200), /*text of joint damage or written manually*/ Comment varchar(200), BalloonPressure decimal(6,3), P1Start decimal(6,2), P1End decimal(6,2), P1Hermetic integer, /*1 or 0*/ Added decimal(6,2), RealSedation time, StartTime time, EndTime time, P1TimeStart time, P1TimeEnd time ) CREATE TABLE JointPressureTest (EventID integer NOT NULL PRIMARY KEY REFERENCES PressureTest ON DELETE CASCADE, JointNo integer, DamageID integer REFERENCES Abbr, PathLength decimal(6,2), InternalPathLength decimal(6,2), InspectedTubeLength decimal(6,2), VideoCounter time ) CREATE TABLE ScanCamInspection (ScanCamInspectionID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Structure, FlowDirectionID integer REFERENCES Abbr, InspectionModeID integer REFERENCES Abbr /*Dorsten, ISYBAU06, ATVM149*/, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), CityMapPageNo varchar(10), StreetSurface varchar(20) /*EN13508*/, WeatherID integer REFERENCES Abbr /*ISYBAU06, ATVM14*/, Weather varchar(20), SewerNo varchar(20), Scale integer, EndOfGuarantee varchar(20), CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000) ) (CREATE GENERATOR ScanCamInspection_gen; CREATE TABLE InclMeasurement (InclMeasurementID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Structure, FlowDirectionID integer REFERENCES Abbr, InspectionModeID integer REFERENCES Abbr /*Dorsten, ISYBAU06, ATVM149*/, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), CityMapPageNo varchar(10), StreetSurface varchar(20) /*EN13508*/, WeatherID integer REFERENCES Abbr /*ISYBAU06, ATVM14*/, Weather varchar(20), SewerNo varchar(20), Scale integer, EndOfGuarantee varchar(20), CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000) ) &CREATE GENERATOR InclMeasurement_gen; yCREATE TABLE PANCamInspection (TVInspectionID integer NOT NULL PRIMARY KEY REFERENCES TVInspection ON DELETE CASCADE ) CREATE TABLE PANCamFilm (MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, TVInspectionID integer NOT NULL REFERENCES PANCamInspection ON DELETE CASCADE) ?CREATE TABLE StructureParticle (StructureParticleID integer NOT NULL PRIMARY KEY, ShapeID integer NOT NULL REFERENCES Abbr, StructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE, Dim1 decimal(6,2), Dim2 decimal(6,2), Dim3 decimal(6,2), Dim4 decimal(6,2), Dim5 decimal(6,2), HeightIndex integer ) (CREATE GENERATOR StructureParticle_gen; "CREATE TABLE Measurement (MeasurementID integer NOT NULL PRIMARY KEY, StructureID integer REFERENCES Structure ON DELETE CASCADE, EventID integer REFERENCES AbstractEvent ON DELETE CASCADE, MeasurementTypeID integer REFERENCES Abbr, Multiplicity integer, Value1 float, Value2 float) "CREATE GENERATOR Measurement_gen; 5CREATE INDEX Measurement_idx ON Measurement(Value1); CREATE TABLE Preset (PresetID integer NOT NULL PRIMARY KEY, ControlKey varchar(50) NOT NULL, Timepoint timestamp, Text varchar(256) ) .CREATE INDEX Preset_idx ON Preset(ControlKey) CREATE GENERATOR Preset_gen 7/*Report numbers*/ CREATE GENERATOR ReportNo_Reach_gen .CREATE GENERATOR ReportNo_HouseConnection_gen &CREATE GENERATOR ReportNo_Manhole_gen &CREATE GENERATOR ReportNo_ScanCam_gen *CREATE GENERATOR ReportNo_Inclination_gen 'CREATE GENERATOR ReportNo_KampacML_gen 'CREATE GENERATOR ReportNo_KampacMW_gen 'CREATE GENERATOR ReportNo_KampacHL_gen 'CREATE GENERATOR ReportNo_KampacHW_gen 'CREATE GENERATOR ReportNo_KampacHV_gen 'CREATE GENERATOR ReportNo_KampacSU_gen 'CREATE GENERATOR ReportNo_KampacSW_gen 'CREATE GENERATOR ReportNo_KampacSM_gen 'CREATE GENERATOR ReportNo_KampacSV_gen &CREATE GENERATOR ReportNo_KampacA_gen &SET GENERATOR ReportNo_Reach_gen TO 1 0SET GENERATOR ReportNo_HouseConnection_gen TO 1 (SET GENERATOR ReportNo_Manhole_gen TO 1 (SET GENERATOR ReportNo_ScanCam_gen TO 1 ,SET GENERATOR ReportNo_Inclination_gen TO 1 )SET GENERATOR ReportNo_KampacML_gen TO 1 )SET GENERATOR ReportNo_KampacMW_gen TO 1 )SET GENERATOR ReportNo_KampacHL_gen TO 1 )SET GENERATOR ReportNo_KampacHW_gen TO 1 )SET GENERATOR ReportNo_KampacHV_gen TO 1 )SET GENERATOR ReportNo_KampacSU_gen TO 1 )SET GENERATOR ReportNo_KampacSW_gen TO 1 )SET GENERATOR ReportNo_KampacSM_gen TO 1 )SET GENERATOR ReportNo_KampacSV_gen TO 1 (SET GENERATOR ReportNo_KampacA_gen TO 1 CREATE VIEW TVInsps (StructureType, StructureID, Number, InspDate, Street, City, IsActive, UpperManhole, LowerManhole, RevManhole, InspectionLength, ParentStructureID) AS SELECT 'H' AS StructureType,S.StructureID,S.Number,S.InspDate,S.Street,S.City,S.IsActive, UM.Number AS UpperManhole,LM.Number AS LowerManhole,'' AS RevManhole,InspectionLength, NULL AS ParentStructureID FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PANCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE PCI.TVInspectionID IS NULL UNION SELECT 'A' AS StructureType,S.StructureID,S.Number,InspDate,Street,City,IsActive, '' AS UpperManhole,'' AS LowerManhole,RevManhole,InspectionLength, LSS.MasterStructureID AS ParentStructureID FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID UNION SELECT 'S' AS StructureType,S.StructureID,S.Number,InspDate,Street,City,IsActive, '' AS UpperManhole,'' AS LowerManhole,'' AS RevManhole,0 AS InspectionLength, NULL AS ParentStructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID UNION SELECT 'P' AS StructureType,S.StructureID,S.Number,S.InspDate,S.Street,S.City,S.IsActive, UM.Number AS UpperManhole,LM.Number AS LowerManhole,'' AS RevManhole,InspectionLength, NULL AS ParentStructureID FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN PanCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID ORDER BY 2 aCREATE VIEW ReachesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1,Comment2) AS SELECT 'H' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN PANCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE PCI.TVInspectionID IS NULL 'CREATE VIEW HouseConnectionsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'A' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, HC.StartManholeID, NULL AS LowerManholeID, UM.Number AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, HC.RevManhole, HC.DistanceFromManhole, LSS.MasterStructureID AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON HC.StartManholeID = UM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID CREATE VIEW ManholesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'S' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, NULL AS SewerType, NULL AS MaterialID, NULL AS ProfileType, NULL AS ProfileHeight, NULL AS ProfileWidth, NULL AS ReachLength, NULL AS SitePlanNo, NULL AS MunicipalCode, NULL AS DistrictNo, NULL AS PipeLength, NULL AS WaterProtectionZone, NULL AS PositionInStreet, NULL AS SewerageDistrict, NULL AS UpperManholeID, NULL AS LowerManholeID, NULL AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, MF.Code AS ManholeForm, M.CoordX, M.CoordY, M.CoordExactID, M.CoverHeight, M.CoverExactID, M.BottomHeight, M.BottomExactID, STA.Code AS Status, FS.Code AS FlumeShape, DC.Code AS DefinitionClass, M.CoverDN, M.CoverWidth, CS.Code AS CoverShape, MS.Code AS ManhShape, M.ManhDN, M.ManhWidth, M.TaperShaftRing, MLS.Code AS ManhLowerShape, M.ManhLowerDN, M.ManhLowerWidth, M.ManhLowerHeight, NM.Code AS NeckMaterial, UPM.Code AS UpperPartMaterial, LPM.Code AS LowerPartMaterial, FM.Code AS FlumeMaterial, MST.Code AS ManholeStep, M.DescendingHelp, M.ShaftRing, M.CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN AbbrText IP ON M.InternalProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText MF ON M.ManholeFormID = MF.AbbrID LEFT OUTER JOIN Language MFLang ON MF.LanguageID = MFLang.LanguageID AND MFLang.IsActive=1 LEFT OUTER JOIN AbbrText STA ON M.StatusID = STA.AbbrID LEFT OUTER JOIN Language STALang ON STA.LanguageID = STALang.LanguageID AND STALang.IsActive=1 LEFT OUTER JOIN AbbrText FS ON M.FlumeShapeID = FS.AbbrID LEFT OUTER JOIN Language FSLang ON FS.LanguageID = FSLang.LanguageID AND FSLang.IsActive=1 LEFT OUTER JOIN AbbrText DC ON M.DefinitionClassID = DC.AbbrID LEFT OUTER JOIN Language DCLang ON DC.LanguageID = DCLang.LanguageID AND DCLang.IsActive=1 LEFT OUTER JOIN AbbrText CS ON M.CoverShapeID = CS.AbbrID LEFT OUTER JOIN Language CSLang ON CS.LanguageID = CSLang.LanguageID AND CSLang.IsActive=1 LEFT OUTER JOIN AbbrText MS ON M.ManhShapeID = MS.AbbrID LEFT OUTER JOIN Language MSLang ON MS.LanguageID = MSLang.LanguageID AND MSLang.IsActive=1 LEFT OUTER JOIN AbbrText MLS ON M.ManhLowerShapeID = MLS.AbbrID LEFT OUTER JOIN Language MLSLang ON MLS.LanguageID = MLSLang.LanguageID AND MLSLang.IsActive=1 LEFT OUTER JOIN AbbrText NM ON M.NeckMaterialID = NM.AbbrID LEFT OUTER JOIN Language NMLang ON NM.LanguageID = NMLang.LanguageID AND NMLang.IsActive=1 LEFT OUTER JOIN AbbrText UPM ON M.UpperPartMaterialID = UPM.AbbrID LEFT OUTER JOIN Language UPMLang ON UPM.LanguageID = UPMLang.LanguageID AND UPMLang.IsActive=1 LEFT OUTER JOIN AbbrText LPM ON M.LowerPartMaterialID = LPM.AbbrID LEFT OUTER JOIN Language LPMLang ON LPM.LanguageID = LPMLang.LanguageID AND LPMLang.IsActive=1 LEFT OUTER JOIN AbbrText FM ON M.FlumeMaterialID = FM.AbbrID LEFT OUTER JOIN Language FMLang ON FM.LanguageID = FMLang.LanguageID AND FMLang.IsActive=1 LEFT OUTER JOIN AbbrText MST ON M.ManholeStepID = MST.AbbrID LEFT OUTER JOIN Language MSTLang ON FM.LanguageID = MSTLang.LanguageID AND MSTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 ACREATE VIEW PANCamInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'P' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN PanCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID CREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ManholesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM PANCamInspsFull ORDER BY 2 CREATE VIEW TVEvents (TVInspectionID, Code, CodeText, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Measure2, Unit1, Unit2, VideoCounter, RouteDamage, PictureName) AS SELECT TVInspectionID, EC.Code AS Code, ATX.FullText AS CodeText, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Measure2, U1.Name AS Unit1, U2.Name AS Unit2, VideoCounter, RD.Code AS RouteDamage, (SELECT FIRST 1 Path FROM Multimedia MM LEFT OUTER JOIN Picture Pct ON Pct.MultimediaID=MM.MultimediaID WHERE Pct.EventID=E.EventID) AS PictureName FROM Event E LEFT OUTER JOIN AbbrText EC ON E.CodeID = EC.AbbrID LEFT OUTER JOIN Language ECLang ON EC.LanguageID = ECLang.LanguageID AND ECLang.IsActive=1 LEFT OUTER JOIN Unit U1 ON E.UNIT1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.UNIT2ID = U2.UnitID LEFT OUTER JOIN AbbrText RD ON E.RouteDamageID = RD.AbbrID LEFT OUTER JOIN Language RDLang ON RD.LanguageID = RDLang.LanguageID AND RDLang.IsActive=1 INNER JOIN AbbrText ATX ON E.CodeID=ATX.AbbrID INNER JOIN Language L1 ON ATX.LanguageID=L1.LanguageID AND L1.IsActive=1 ORDER BY 1 CREATE VIEW JointPressInspsFull (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, PressureInspectionID, Mode, FlowDirectionID, FlowDirection, OrdererPresent, ContractorPresent, ResponsiblePerson, Weather, Device, Norm, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea, Flag, Comment1, Comment2) AS SELECT S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, I.PressureInspectionID, MD.Code AS Mode, I.FlowDirectionID, FD.Code AS FlowDirection, I.OrdererPresent, I.ContractorPresent, I.ResponsiblePerson, I.Weather, I.Device, I.Norm, I.NominalPressure, I.Reference, I.NominalTestTime, I.NominalSedation, I.Volume, I.SurfaceArea, I.Flag, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN PressureInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText MD ON I.ModeID = MD.AbbrID LEFT OUTER JOIN Language MDLang ON MD.LanguageID = MDLang.LanguageID AND MDLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE MD.Code IN ('MW', 'ML') CREATE VIEW JointPressEvents (PressureInspectionID, PathLength, InspectedPathLength, VideoCounter, JointNo, Pressure, P1Start, P1End, P1Hermetic, StartTime, EndTime, DamageText, Comment) AS SELECT PT.PressureInspectionID, PathLength, InspectedTubeLength, VideoCounter, JointNo, BalloonPressure, P1Start, P1End, P1Hermetic, StartTime, EndTime, DamageText, Comment FROM PressureTest PT INNER JOIN JointPressureTest JPT ON PT.EventID = JPT.EventID ORDER BY 1 COMMIT *INSERT INTO PictureFormat VALUES(1,'JPG') *INSERT INTO PictureFormat VALUES(2,'TIF') *INSERT INTO FilmFormat VALUES(1,'MPEG-1') *INSERT INTO FilmFormat VALUES(2,'MPEG-2') *INSERT INTO FilmFormat VALUES(3,'MPEG-4') COMMIT CREATE PROCEDURE AddCustomer ( Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN CustomerID = GEN_ID(Customer_gen,1); INSERT INTO Customer(CustomerID,Name,Street,Zip,City,Land,Tel,Fax,ExtraInfo) VALUES (:CustomerID,:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo); END CREATE PROCEDURE FindCustomer (Name varchar(40),Street varchar(40),Zip varchar(10),City varchar(40),Land varchar(20), Tel varchar(30),Fax varchar(30),ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (C.Name = :Name) AND ((C.Street IS NULL) OR (:Street IS NULL) OR (C.Street = :Street)) AND ((C.Zip IS NULL) OR (:Zip IS NULL) OR (C.Zip = :Zip)) AND ((C.City IS NULL) OR (:City IS NULL) OR (C.City = :City)) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo) RETURNING_VALUES :CustomerID; END kCREATE PROCEDURE UpdateCustomer ( ID integer, Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) AS BEGIN UPDATE Customer SET Name=:Name,Street=:Street,Zip=:Zip,City=:City, Land=:Land,Tel=:Tel,Fax=:Fax,ExtraInfo=:ExtraInfo WHERE CustomerID = :ID; END CREATE PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID); END YCREATE PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID WHERE ProjectID=:ID; END CREATE PROCEDURE SetStructureActive(StructureID integer) AS BEGIN UPDATE Structure SET IsActive=0 WHERE StructureID <> :StructureID; UPDATE Structure SET IsActive=1 WHERE StructureID = :StructureID; END 0CREATE PROCEDURE DeleteStructure(StructureID Integer) AS DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE PressureInspectionID integer; DECLARE VARIABLE MultimediaID integer; DECLARE VARIABLE EventID integer; BEGIN FOR SELECT TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID DO BEGIN FOR SELECT MultimediaID FROM Multimedia WHERE TVInspectionID=:TVInspectionID INTO :MultimediaID DO BEGIN DELETE FROM Picture WHERE MultimediaID=:MultimediaID; DELETE FROM Film WHERE MultimediaID=:MultimediaID; END DELETE FROM Multimedia WHERE TVInspectionID=:TVInspectionID; FOR SELECT EventID FROM Event WHERE TVInspectionID=:TVInspectionID INTO :EventID DO BEGIN DELETE FROM Event WHERE EventID=:EventID; DELETE FROM AbstractEvent WHERE EventID=:EventID; END END FOR SELECT PressureInspectionID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureInspectionID DO BEGIN FOR SELECT EventID FROM PressureTest WHERE PressureInspectionID=:PressureInspectionID INTO :EventID DO BEGIN DELETE FROM Measurement WHERE EventID=:EventID; DELETE FROM PressureTest WHERE EventID=:EventID; DELETE FROM AbstractEvent WHERE EventID=:EventID; END END DELETE FROM LStructureStructure WHERE StructureID=:StructureID OR MasterStructureID=:StructureID; UPDATE Event SET ChildStructureID=NULL WHERE ChildStructureID=:StructureID; DELETE FROM PressureInspection WHERE StructureID=:StructureID; DELETE FROM Measurement WHERE StructureID=:StructureID; DELETE FROM Structure WHERE StructureID=:StructureID; END CREATE PROCEDURE FindManhole(Name varchar(20)) RETURNS (StructureID integer) AS BEGIN SELECT S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE (S.Number = :Name) INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number) VALUES (:StructureID,:Name); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END B CREATE PROCEDURE UpdateManhole(StructureID integer,Number varchar(40),CodeDigit varchar(256), InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint) AS BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson=:ResponsiblePerson,Judgement=:StateTotal WHERE StructureID=:StructureID; UPDATE Manhole SET ManholeFormID=:ManholeFormID, CoordX=:CoordX,CoordY=:CoordY,CoordExactID=:CoordExactID, CoverHeight=:CoverHeight,CoverExactID=:CoverExactID,BottomHeight=:BottomHeight,BottomExactID=:BottomExactID, StatusID=:StatusID,FlumeShapeID=:FlumeShapeID,DefinitionClassID=:DefinitionClassID, CoverDN=:CoverDN,CoverWidth=:CoverWidth,CoverShapeID=:CoverShapeID,ManhShapeID=:ManhShapeID,ManhDN=:ManhDN, ManhWidth=:ManhWidth,TaperShaftRing=:TaperShaftRing,ManhLowerShapeID=:ManhLowerShapeID,ManhLowerDN=:ManhLowerDN, ManhLowerWidth=:ManhLowerWidth,ManhLowerHeight=:ManhLowerHeight,NeckMaterialID=:NeckMaterialID, UpperPartMaterialID=:UpperPartMaterialID,LowerPartMaterialID=:LowerPartMaterialID,FlumeMaterialID=:FlumeMaterialID, InternalProtectionID=:InternalProtectionID,ManholeStepID=:ManholeStepID, DescendingHelp=:DescendingHelp,ShaftRing=:ShaftRing,CoverPlate=:CoverPlate WHERE StructureID=:StructureID; END CREATE PROCEDURE AddManhole(Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen,1); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID,:StructureID); EXECUTE PROCEDURE UpdateManhole(:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :ManholeFormID,:ResponsiblePerson,:StateTotal,:CoordX,:CoordY,:CoordExactID, :CoverHeight,:CoverExactID,:BottomHeight,:BottomExactID,:StatusID,:FlumeShapeID,:DefinitionClassID, :CoverDN,:CoverWidth,:CoverShapeID,:ManhShapeID,:ManhDN,:ManhWidth,:TaperShaftRing,:ManhLowerShapeID,:ManhLowerDN, :ManhLowerWidth,:ManhLowerHeight,:NeckMaterialID,:UpperPartMaterialID,:LowerPartMaterialID,:FlumeMaterialID, :InternalProtectionID,:ManholeStepID,:DescendingHelp,:ShaftRing,:CoverPlate); END ( CREATE PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint,IsActive smallint) AS BEGIN SELECT FIRST 1 Number,CodeDigit,InspDate,Street,StreetCode,Zip,City,BuildYear,ReportNo, ManholeFormID,ResponsiblePerson,Judgement,CoordX,CoordY,CoordExactID, CoverHeight,CoverExactID,BottomHeight,BottomExactID,StatusID,FlumeShapeID,DefinitionClassID, CoverDN,CoverWidth,CoverShapeID,ManhShapeID,ManhDN,ManhWidth,TaperShaftRing,ManhLowerShapeID,ManhLowerDN, ManhLowerWidth,ManhLowerHeight,NeckMaterialID,UpperPartMaterialID,LowerPartMaterialID,FlumeMaterialID, InternalProtectionID,ManholeStepID,DescendingHelp,ShaftRing,CoverPlate,S.IsActive FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID WHERE M.StructureID=:StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :ManholeFormID,:ResponsiblePerson,:StateTotal,:CoordX,:CoordY,:CoordExactID, :CoverHeight,:CoverExactID,:BottomHeight,:BottomExactID,:StatusID,:FlumeShapeID,:DefinitionClassID, :CoverDN,:CoverWidth,:CoverShapeID,:ManhShapeID,:ManhDN,:ManhWidth,:TaperShaftRing,:ManhLowerShapeID,:ManhLowerDN, :ManhLowerWidth,:ManhLowerHeight,:NeckMaterialID,:UpperPartMaterialID,:LowerPartMaterialID,:FlumeMaterialID, :InternalProtectionID,:ManholeStepID,:DescendingHelp,:ShaftRing,:CoverPlate,:IsActive; END CREATE PROCEDURE DeleteManhole(StructureID integer) AS BEGIN DELETE FROM ManholeConnection WHERE StructureID=:StructureID; DELETE FROM Manhole WHERE StructureID=:StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END XCREATE PROCEDURE UpdatePipeStructure(StructureID integer,TVInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE TVInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee, CleaningDate=:CleaningDate,FlowControlID=:FlowControlID,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,ResponsiblePersonCertificateNo=:ResponsiblePersonCertificateNo, LocationDetails=:LocationDetails,RenovationYear=:RenovationYear,SewerCategory=:SewerCategory, PreCleaningID=:PreCleaningID,DrainageArea=:DrainageArea,InspPurposeID=:InspPurposeID,Comment1=:Comment1,Comment2=:Comment2 WHERE TVInspectionID=:TVInspectionID; END CREATE PROCEDURE AddReach (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer,TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES(:TVInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo,:LocationDetails, :FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea,:InspPurposeID,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END CREATE PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength, ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea,InspPurposeID, Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo,:LocationDetails, :FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea,:InspPurposeID,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE PROCEDURE UpdateReach (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID, :DrainageArea,:InspPurposeID,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END CREATE PROCEDURE DeleteReach(StructureID integer) AS BEGIN DELETE FROM Reach WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END CREATE PROCEDURE FindReach(Number varchar(30)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Reach R ON S.StructureID = R.StructureID WHERE (S.Number = :Number) INTO :StructureID; END CREATE PROCEDURE AddHouseConnection ( Number varchar(40), ReachNumber varchar(30), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, RevManhole varchar(30), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartManhole varchar(20), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer ) RETURNS (StructureID integer) AS DECLARE VARIABLE StartManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID,:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength, :Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo, :MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo, :Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID, :DrainageArea,:InspPurposeID,:Comment1,:Comment2); INSERT INTO HouseConnection(StructureID,RevManhole,StartManholeID,DistanceFromManhole) VALUES (:StructureID,:RevManhole,:StartManholeID,:DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END IF (ParentStructID IS NOT NULL) THEN BEGIN IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID=A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID=LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID=SAC.SpecialAbbrClassID AND SAC.Code='ANS' WHERE StructureID=:ParentStructID AND PathLength-:DistanceFromManhole <= 0.01 AND PathLength-:DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle=87 WHERE EventID=:ParentEventID; END UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; INSERT INTO LStructureStructure(StructureID,MasterStructureID) VALUES (:StructureID,:ParentStructID); END END gCREATE PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, RevManhole varchar(30), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight integer, ProfileWidth integer, ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), Surface varchar(20), StartManhole varchar(20), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, RevManhole,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,TV.VideoCounter,VideoTape,SectionNo,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID, RenovationYear,SewerCategory,PreCleaningID,DrainageArea,InspPurposeID,Comment1,Comment2,SM.Number,DistanceFromManhole, LSS.MasterStructureID,Ev.EventID,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :RevManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea, :InspPurposeID,:Comment1,:Comment2,:StartManhole,:DistanceFromManhole, :ParentStructID,:ParentEventID,:IsActive; END vCREATE PROCEDURE UpdateHouseConnection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,RevManhole varchar(30),FlowDirectionID integer, InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartManhole varchar(20), DistanceFromManhole decimal(6,2),ParentStructID integer,ParentEventID integer) AS DECLARE VARIABLE StartManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END SELECT TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo, :StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet, :SewerageDistrict,:EndOfGuarantee,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo, :LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea,:InspPurposeID,:Comment1,:Comment2); UPDATE HouseConnection SET RevManhole=:RevManhole,StartManholeID=:StartManholeID,DistanceFromManhole=:DistanceFromManhole WHERE StructureID=:StructureID; DELETE FROM LStructureStructure WHERE StructureID=:StructureID; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; END END CREATE PROCEDURE DeleteHouseConnection (StructureID integer) AS BEGIN DELETE FROM HouseConnection WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END PCREATE PROCEDURE UpdateInspAndPipeLength(EventID integer) AS DECLARE VARIABLE StructureID integer; DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE StartL decimal(6,2); DECLARE VARIABLE EndL decimal(6,2); DECLARE VARIABLE EH integer; BEGIN SELECT TV.StructureID,TV.TVInspectionID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID INNER JOIN PipeStructure PS ON TV.StructureID=PS.StructureID WHERE EventID=:EventID INTO :StructureID,:TVInspectionID; /* INSERT INTO DEBUGLOG VALUES ('StructureID: '||cast(:StructureID AS varchar(5)));*/ IF (StructureID IS NOT NULL) THEN BEGIN SELECT min(PathLength) FROM Event WHERE TVInspectionID=:TVInspectionID INTO StartL; SELECT max(PathLength) FROM Event E INNER JOIN AbbrText ATX ON E.CodeID=ATX.AbbrID WHERE TVInspectionID=:TVInspectionID AND ATX.Code <> 'E' INTO EndL; UPDATE TVInspection SET InspectionLength=:EndL-:StartL WHERE StructureID=:StructureID; SELECT count(*) FROM Event E INNER JOIN LAbbrSpecialAbbrClass LSAC ON E.CodeID=LSAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LSAC.SpecialAbbrClassID=SAC.SpecialAbbrClassID WHERE E.EventID=:EventID AND SAC.Code='EH' INTO :EH; IF (EH > 0) THEN BEGIN UPDATE PipeStructure SET ReachLength=(SELECT PathLength FROM Event WHERE EventID=:EventID) WHERE StructureID=:StructureID; END END END XCREATE PROCEDURE AddEvent ( StructureID integer, CodeID integer, Code varchar(10), Comment varchar(80), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength decimal(6,2), PathLength decimal(6,2), Measure1 decimal(10,3), Unit1ID integer, Unit1 varchar(10), Measure2 decimal(10,3), Unit2ID integer, Unit2 varchar(10), VideoCounter time, RouteDamageID integer, RouteDamage varchar(10) ) RETURNS (EventID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN EventID = GEN_ID(Event_gen,1); SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; END IF ((CodeID IS NULL) OR (CodeID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END IF ((Unit1ID IS NULL) OR (Unit1ID = 0)) THEN BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); END IF ((Unit2ID IS NULL) OR (Unit2ID = 0)) THEN BEGIN EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); END IF ((RouteDamageID IS NULL) OR (RouteDamageID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage,'T') RETURNING_VALUES (:RouteDamageID); END INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO Event(EventID,TVInspectionID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,Unit1ID,Measure2,Unit2ID,VideoCounter,RouteDamageID) VALUES(:EventID,:TVInspectionID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1ID,:Measure2,:Unit2ID,:VideoCounter,:RouteDamageID); EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END TCREATE PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer,CodeID integer,Code varchar(10),Comment varchar(80),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2), PathLength decimal(6,2),Measure1 decimal(10,3),Unit1 varchar(10),Measure2 decimal(10,3), Unit2 varchar(10),VideoCounter time,RouteDamageID integer,PictureCnt integer) AS BEGIN SELECT StructureID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,U1.Name,Measure2,U2.Name,E.VideoCounter,RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID=:EventID) AS PictureCnt FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID=:EventID INTO :StructureID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1,:Measure2,:Unit2,:VideoCounter,:RouteDamageID,:PictureCnt; END CREATE PROCEDURE UpdateEvent(EventID integer,StructureID integer,CodeID integer, Comment varchar(80),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2), PathLength decimal(6,2),Measure1 decimal(10,3),Unit1 varchar(10),Measure2 decimal(10,3), Unit2 varchar(10),VideoCounter time,RouteDamageID integer,RouteDamage varchar(10)) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); UPDATE Event SET CodeID=:CodeID,Comment=:Comment,Class=:Class, Joint=:Joint,PositionFrom=:PositionFrom,PositionTo=:PositionTo,JointAngle=:JointAngle,Mode=:Mode, InternalPathLength=:InternalPathLength,PathLength=:PathLength,Measure1=:Measure1, Unit1ID=:Unit1ID,Measure2=:Measure2,Unit2ID=:Unit2ID,VideoCounter=:VideoCounter,RouteDamageID=:RouteDamageID WHERE EventID=:EventID; EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END DCREATE PROCEDURE DeleteEvent(EventID integer) AS BEGIN UPDATE Picture SET EventID=NULL WHERE EventID=:EventID; UPDATE Measurement SET EventID=NULL WHERE EventID=:EventID; DELETE FROM Event WHERE EventID=:EventID; DELETE FROM AbstractEvent WHERE EventID=:EventID; EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END cCREATE PROCEDURE AddManholeConnection(StructureID integer,TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10)) RETURNS (ManholeConnectionID integer) AS BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen,1); IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; INSERT INTO ManholeConnection(ManholeConnectionID,StructureID,TypeID,Dim,Height,MaterialID, ConnPosition,Comment,Coord) VALUES(:ManholeConnectionID,:StructureID,:TypeID,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord); END CREATE PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer,TypeID integer,TypeText varchar(256),Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10)) AS BEGIN SELECT StructureID,TypeID,ATX.FullText,Dim,Height,MaterialID,ConnPosition,Comment,Coord FROM ManholeConnection LEFT OUTER JOIN AbbrText ATX ON TypeID=ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 WHERE ManholeConnectionID=:ManholeConnectionID INTO :StructureID,:TypeID,:TypeText,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord; END "CREATE PROCEDURE UpdateManholeConnection(ManholeConnectionID integer,StructureID integer, TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10)) AS BEGIN IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; UPDATE ManholeConnection SET StructureID=:StructureID,TypeID=:TypeID,Dim=:Dim,Height=:Height, MaterialID=:MaterialID,ConnPosition=:ConnPosition,Comment=:Comment,Coord=:Coord WHERE ManholeConnectionID=:ManholeConnectionID; END CREATE PROCEDURE DeleteManholeConnection(ManholeConnectionID integer) AS BEGIN DELETE FROM ManholeConnection WHERE ManholeConnectionID=:ManholeConnectionID; END 7CREATE PROCEDURE AddFilm(StructureID integer,Path varchar(1000),StartTC varchar(10),StopTC varchar(10),MPEGLength integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; INSERT INTO Multimedia(MultimediaID,Path,TVInspectionID) VALUES (:MultimediaID,:Path,:TVInspectionID); INSERT INTO Film(MultimediaID,StartTC,StopTC,MPEGLength) VALUES (:MultimediaID,:StartTC,:StopTC,:MpegLength); END CREATE PROCEDURE AddPicture(StructureID integer,EventID integer,Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia(MultimediaID,Path,TVInspectionID) VALUES (:MultimediaID,:Path,:TVInspectionID); INSERT INTO Picture(MultimediaID,EventID) VALUES (:MultimediaID,:EventID); END QCREATE PROCEDURE DeletePicture(StructureID integer,EventID integer,Path varchar(1000)) AS DECLARE VARIABLE MultimediaID integer; BEGIN SELECT M.MultimediaID FROM TVInspection T, Multimedia M, Picture P WHERE T.TVInspectionID = M.TVInspectionID AND M.MultimediaID = P.MultimediaID AND T.StructureID = :StructureID AND M.Path = :Path AND P.EventID = :EventID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN DELETE FROM Picture WHERE MultimediaID = :MultimediaID AND EventID = :EventID; DELETE FROM Multimedia WHERE MultimediaID = :MultimediaID AND Path = :Path; END END CREATE PROCEDURE AddSewerMap(StructureID integer, Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia(MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); INSERT INTO SewerMap(MultimediaID, M11, M12, M13, M14, M21, M22, M23, M24, M31, M32, M33, M34, M41, M42, M43, M44) VALUES (:MultimediaID, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); END CREATE PROCEDURE SetSewerMapActive(StructureID integer, MultimediaID integer, IsActive smallint) AS DECLARE VARIABLE multID integer; BEGIN UPDATE SewerMap SET IsActive=0 WHERE MultimediaID IN (SELECT M.MultimediaID FROM Multimedia M INNER JOIN TVInspection T ON M.TVInspectionID = T.TVInspectionID WHERE T.StructureID = :StructureID); UPDATE SewerMap SET IsActive=:IsActive WHERE MultimediaID = :MultimediaID; END CREATE PROCEDURE AddPressureInsp(ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3), ReportNo integer,Comment1 varchar(256),Comment2 varchar(256)) RETURNS (PressureInspectionID integer,StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN PressureInspectionID = GEN_ID(PressureInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:StructureID); UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear WHERE StructureID=:StructureID; END ELSE BEGIN StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number,CodeDigit,InspDate,Street,StreetCode,ZIP,City,BuildYear,ReportNo) VALUES (:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:ZIP,:City,:BuildYear,:ReportNo); END IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN INSERT INTO PipeStructure(StructureID, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,/*VideoTape, SectionNo,*/PipeLength,WaterProtectionZone) VALUES (:StructureID, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,/*:VideoTape, :SectionNo,*/:PipeLength,:WaterProtectionZone); IF ((:StartManhole IS NOT NULL) AND (:StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:EndManhole IS NOT NULL) AND (:EndManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:EndManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN INSERT INTO Separator(StructureID) VALUES (:StructureID); END INSERT INTO PressureInspection(PressureInspectionID,StructureID,FlowDirectionID, OrdererPresent,ContractorPresent,Weather,ModeID,Norm,NominalPressure,Reference,ResponsiblePerson, NominalTestTime,NominalSedation,Volume,SurfaceArea,Flag,Comment1,Comment2) VALUES (:PressureInspectionID,:StructureID,:FlowDirectionID, :OrdererPresent,:ContractorPresent,:Weather,:ModeID,:Norm,:NominalPressure,:Reference,:ResponsiblePerson,:NominalTime,:NominalSedation, :Volume,:SurfaceArea,NULL,:Comment1,:Comment2); END F CREATE PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256)) AS BEGIN SELECT ModeID,S.Number,UM.Number,LM.Number,S.Street,/*InspectionMode,*/OrdererPresent,ContractorPresent, S.StreetCode,S.City,S.InspDate,S.ZIP,S.CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,/*VideoTape,*/ResponsiblePerson,/*SectionNo,*/S.BuildYear,Device,Norm,NominalPressure, Reference,NominalTestTime,NominalSedation,/*TypeOfSealing,*/Weather,PipeLength,WaterProtectionZone,Volume,SurfaceArea,S.ReportNo, Comment1,Comment2 FROM Structure S LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :ModeID,:Number,:StartManhole,:EndManhole,:Street,/*:InspectionMode,*/OrdererPresent,ContractorPresent, StreetCode,City,InspDate,ZIP,CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,/*VideoTape,*/ResponsiblePerson,/*SectionNo,*/BuildYear,Device,Norm,NominalPressure, Reference,NominalTime,NominalSedation,/*TypeOfSealing,*/Weather,PipeLength,WaterProtectionZone,Volume,SurfaceArea,ReportNo, Comment1,Comment2; END CREATE PROCEDURE UpdatePressureInsp (StructureID integer, ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear WHERE StructureID=:StructureID; IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID, SewerTypeID=:SewerTypeID, MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID, ProfileHeight=:ProfileHeight, ProfileWidth=:ProfileWidth,ReachLength=:ReachLength, /*VideoTape=:VideoTape, SectionNo=:SectionNo, */ PipeLength=:PipeLength,WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; IF ((:StartManhole IS NOT NULL) AND (:StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:EndManhole IS NOT NULL) AND (:EndManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:EndManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE Reach SET UpperManholeID=:UpperManholeID, LowerManholeID=:LowerManholeID WHERE StructureID=:StructureID; END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN /*UPDATE Separator(StructureID) VALUES (:StructureID);*/ END UPDATE PressureInspection SET FlowDirectionID=:FlowDirectionID, OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent,Weather=:Weather,ModeID=:ModeID,Norm=:Norm, NominalPressure=:NominalPressure,Reference=:Reference,ResponsiblePerson=:ResponsiblePerson, NominalTestTime=:NominalTime,NominalSedation=:NominalSedation,Volume=:Volume,SurfaceArea=:SurfaceArea,Flag=NULL, Comment1=:Comment1,Comment2=:Comment2 WHERE StructureID=:StructureID; END CREATE PROCEDURE AddPressureTest(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added decimal(6,2),RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2),InspectedTubeLength decimal(6,2)) RETURNS (EventID integer) AS BEGIN EventID = GEN_ID(Event_gen,1); INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO PressureTest(EventID,PressureInspectionID,DamageText,Comment,BalloonPressure, P1Start,P1End,P1Hermetic,Added,RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd) VALUES (:EventID,:PressureInspectionID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End, :P1Hermetic,:Added,:RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd); IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; INSERT INTO JointPressureTest(EventID,JointNo,DamageID,PathLength,InternalPathLength,InspectedTubeLength) VALUES (:EventID,:JointNo,:DamageID,:PathLength,:InternalPathLength,:InspectedTubeLength); END END CREATE PROCEDURE GetPressureTestByID(EventID integer) RETURNS(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added decimal(6,2),RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2),InspectedTubeLength decimal(6,2)) AS BEGIN SELECT PressureInspectionID,DamageID,DamageText,Comment,BalloonPressure,P1Start,P1End,P1Hermetic,Added, RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd,JointNo,PathLength,InternalPathLength,InspectedTubeLength FROM PressureTest PT LEFT OUTER JOIN JointPressureTest JPT ON PT.EventID=JPT.EventID WHERE PT.EventID=:EventID INTO :PressureInspectionID,:DamageID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End,:P1Hermetic,:Added, :RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd,:JointNo,:PathLength,:InternalPathLength,:InspectedTubeLength; END :CREATE PROCEDURE UpdatePressureTest(EventID integer,PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added decimal(6,2),RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2),InspectedTubeLength decimal(6,2)) AS BEGIN UPDATE PressureTest SET PressureInspectionID=:PressureInspectionID,DamageText=:DamageText, Comment=:Comment,BalloonPressure=:BalloonPressure,P1Start=:P1Start,P1End=:P1End,P1Hermetic=:P1Hermetic, Added=:Added,RealSedation=:RealSedation,StartTime=:StartTime,EndTime=:EndTime,P1TimeStart=:P1TimeStart, P1TimeEnd=:P1TimeEnd WHERE EventID=:EventID; IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; UPDATE JointPressureTest SET JointNo=:JointNo,DamageID=:DamageID,PathLength=:PathLength, InternalPathLength=:InternalPathLength,InspectedTubeLength=:InspectedTubeLength WHERE EventID=:EventID; END END CREATE PROCEDURE DeletePressureTest(EventID integer) AS BEGIN DELETE FROM Measurement WHERE EventID=:EventID; DELETE FROM JointPressureTest WHERE EventID=:EventID; DELETE FROM PressureTest WHERE EventID=:EventID; DELETE FROM AbstractEvent WHERE EventID=:EventID; END CREATE PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END CREATE PROCEDURE AddScanCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END 6 CREATE PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END CREATE PROCEDURE DeleteScanCamInspection(StructureID integer) AS BEGIN DELETE FROM Reach WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END CREATE PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END CREATE PROCEDURE AddInclMeasurement (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); InclMeasurementID = GEN_ID(InclMeasurement_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO InclMeasurement(InclMeasurementID,StructureID) VALUES(:InclMeasurementID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END 6 CREATE PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE PROCEDURE UpdateInclMeasurement (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:StructureID INTO :InclMeasurementID; EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END CREATE PROCEDURE DeleteInclMeasurement(StructureID integer) AS BEGIN DELETE FROM Reach WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END CREATE PROCEDURE AddPANCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN EXECUTE PROCEDURE AddReach(Number,CodeDigit,InspDate,Street,StreetCode, Zip,City,BuildYear,ReportNo,UpperManhole, LowerManhole,FlowDirectionID,InspectionModeID,InspectionMode, OrdererPresent,ContractorPresent,InnerProtectionID,SewerTypeID, MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth, ReachLength,Judgement,Timepoint,PictureQuality, VideoCounter,VideoTape,SectionNo,ResponsiblePerson, SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo, CityMapPageNo,StreetSurface,WeatherID,Weather,SewerNo,Scale, PipeLength,WaterProtectionZone,PositionInStreetID, PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, InspPurposeID,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) RETURNING_VALUES (StructureID,TVInspectionID); INSERT INTO PANCamInspection(TVInspectionID) VALUES (:TVInspectionID); END eCREATE PROCEDURE GetPANCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, InspPurposeID,Comment1,Comment2,StartMeter,EndMeter,RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID INNER JOIN PANCamInspection PCI ON TV.TVInspectionID=PCI.TVInspectionID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet, :SewerageDistrict,:EndOfGuarantee,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo, :LocationDetails,:FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, :InspPurposeID,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END 1 CREATE PROCEDURE UpdatePANCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20), CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer, DrainageArea varchar(15),InspPurposeID integer, Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS BEGIN EXECUTE PROCEDURE UpdateReach(StructureID,Number,CodeDigit,InspDate,Street,StreetCode, Zip,City,BuildYear,ReportNo,UpperManhole, LowerManhole,FlowDirectionID,InspectionModeID,InspectionMode, OrdererPresent,ContractorPresent,InnerProtectionID,SewerTypeID, MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth, ReachLength,Judgement,Timepoint,PictureQuality, VideoCounter,VideoTape,SectionNo,ResponsiblePerson, SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo, CityMapPageNo,StreetSurface,WeatherID,Weather,SewerNo,Scale, PipeLength,WaterProtectionZone,PositionInStreetID, PositionInStreet,SewerageDistrict,EndOfGuarantee, CleaningDate,Queue,TypeOfSealing,Flag, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea,InspPurposeID,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D); END CREATE PROCEDURE DeletePANCamInspection(StructureID integer) AS BEGIN DELETE FROM Reach WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END CREATE PROCEDURE AddStructureParticle(StructureID integer,ShapeID integer,Dim1 decimal(6,2),Dim2 decimal(6,2), Dim3 decimal(6,2),Dim4 decimal(6,2),Dim5 decimal(6,2),HeightIndex integer) RETURNS (StructureParticleID integer) AS BEGIN StructureParticleID = GEN_ID(StructureParticle_gen,1); INSERT INTO StructureParticle(StructureParticleID,ShapeID,StructureID,Dim1,Dim2,Dim3,Dim4,Dim5,HeightIndex) VALUES (:StructureParticleID,:ShapeID,:StructureID,:Dim1,:Dim2,:Dim3,:Dim4,:Dim5,:HeightIndex); END GCREATE PROCEDURE AddMeasurement(StructureID integer,EventID integer,MeasurementTypeCode varchar(10), Multiplicity integer,Value1 float,Value2 float) AS DECLARE VARIABLE MeasurementID integer; BEGIN MeasurementID = GEN_ID(Measurement_gen,1); IF (StructureID=0) THEN StructureID = NULL; IF (EventID=0) THEN EventID = NULL; IF (MeasurementTypeCode='') THEN MeasurementTypeCode = NULL; INSERT INTO Measurement(MeasurementID,StructureID,EventID,MeasurementTypeID,Multiplicity,Value1,Value2) VALUES(:MeasurementID,:StructureID,:EventID, (SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code='LX' WHERE ATX.Code=:MeasurementTypeCode),:Multiplicity,:Value1,:Value2); END )CREATE PROCEDURE AddPreset(ControlKey varchar(50),Text varchar(256)) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP 10 PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END END END CREATE PROCEDURE GetPresets(ControlKey varchar(50)) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST 10 DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END CREATE PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS BEGIN SELECT (SELECT count(*) FROM Reach) || ' _reaches ( '|| (SELECT sum(InspectionLength) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM HouseConnection)|| ' _connections ( '|| (SELECT sum(InspectionLength) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END b/*It is dangerous! - MPo 2008.09.10 CREATE TRIGGER AFTER_DELETE_TVINSPECTION FOR TVINSPECTION ACTIVE AFTER DELETE POSITION 0 AS DECLARE VARIABLE TVCnt INTEGER; DECLARE VARIABLE PrsCnt INTEGER; BEGIN SELECT COUNT(*) FROM TVINSPECTION WHERE STRUCTUREID = OLD.STRUCTUREID INTO TVCnt; SELECT COUNT(*) FROM PRESSUREINSPECTION WHERE STRUCTUREID = OLD.STRUCTUREID INTO PrsCnt; IF (TVCnt + PrsCnt = 0) THEN BEGIN DELETE FROM STRUCTURE WHERE STRUCTUREID = OLD.STRUCTUREID; END END CREATE TRIGGER AFTER_DELETE_PRESSUREINSPECTION FOR PRESSUREINSPECTION ACTIVE AFTER DELETE POSITION 0 AS DECLARE VARIABLE TVCnt INTEGER; DECLARE VARIABLE PrsCnt INTEGER; BEGIN SELECT COUNT(*) FROM TVINSPECTION WHERE STRUCTUREID = OLD.STRUCTUREID INTO TVCnt; SELECT COUNT(*) FROM PRESSUREINSPECTION WHERE STRUCTUREID = OLD.STRUCTUREID INTO PrsCnt; IF (TVCnt + PrsCnt = 0) THEN BEGIN DELETE FROM STRUCTURE WHERE STRUCTUREID = OLD.STRUCTUREID; END END*/ CREATE TRIGGER AFTER_DELETE_EVENT FOR EVENT ACTIVE AFTER DELETE POSITION 0 AS BEGIN DELETE FROM ABSTRACTEVENT WHERE EVENTID = OLD.EVENTID; END CREATE TRIGGER AFTER_DELETE_PRESSURETEST FOR PRESSURETEST ACTIVE AFTER DELETE POSITION 0 AS BEGIN DELETE FROM ABSTRACTEVENT WHERE EVENTID = OLD.EVENTID; END CREATE PROCEDURE ReverseEvents(TVInspectionID integer) AS DECLARE VARIABLE EventCnt integer; DECLARE VARIABLE ReachLength float; DECLARE VARIABLE MinDist float; DECLARE VARIABLE MaxDist float; DECLARE VARIABLE EventID integer; DECLARE VARIABLE PathLength float; DECLARE VARIABLE InternalPathLength float; DECLARE VARIABLE Code varchar(10); DECLARE VARIABLE PositionFrom float; DECLARE VARIABLE PositionTo float; DECLARE VARIABLE RouteDamageID integer; DECLARE VARIABLE RouteDamageIDA integer; DECLARE VARIABLE RouteDamageIDE integer; DECLARE VARIABLE PipeStart float; DECLARE VARIABLE DamageCodeID integer; DECLARE VARIABLE RevDamageCodeID integer; BEGIN PipeStart = 0; /* check if there is more than one event to reverse */ SELECT COUNT(*) FROM Event WHERE TVInspectionID = :TVInspectionID INTO :EventCnt; IF ((EventCnt IS NOT NULL) AND (EventCnt > 1)) THEN BEGIN /* get reach length from pipestructure table*/ SELECT ReachLength FROM PipeStructure PS INNER JOIN TVInspection I ON PS.StructureID = I.StructureID WHERE TVInspectionID = :TVInspectionID INTO :ReachLength; IF (ReachLength IS NULL) THEN ReachLength = 0; /* get min and max distances to calculate actual length*/ SELECT MIN(PathLength), MAX(PathLength) FROM Event WHERE TVInspectionID = :TVInspectionID INTO :MinDist, :MaxDist; /* compare reach lengths and take greater one*/ IF (MaxDist - MinDist > ReachLength) THEN ReachLength = MaxDist - MinDist; /* update events */ FOR SELECT EventID, InternalPathLength, SUBSTRING(CD.Code FROM 1 FOR 2) AS Code, CodeID, PositionFrom, PositionTo, RouteDamageID FROM Event E LEFT OUTER JOIN AbbrText CD ON E.CodeID = CD.AbbrID LEFT OUTER JOIN Language CDLang ON CD.LanguageID = CDLang.LanguageID AND CDLang.IsActive=1 WHERE TVInspectionID = :TVInspectionID INTO :EventID, :InternalPathLength, :Code, :DamageCodeID, :PositionFrom, :PositionTo, :RouteDamageID DO BEGIN /* change location of damage */ IF (Code = 'LV') THEN BEGIN PositionFrom = 6 - PositionFrom; IF (PositionFrom < 0) THEN PositionFrom = PositionFrom + 12; PositionTo = 6 - PositionTo; IF (PositionTo < 0) THEN PositionTo = PositionTo + 12; END ELSE IF (Code = 'LH') THEN BEGIN PositionFrom = 12 - PositionFrom; IF (PositionFrom < 0) THEN PositionFrom = PositionFrom + 12; PositionTo = 12 - PositionTo; IF (PositionTo < 0) THEN PositionTo = PositionTo + 12; END /* exchange start and stop of route damage */ SELECT AbbrID FROM FindAbbr('A', 'T') INTO :RouteDamageIDA; SELECT AbbrID FROM FindAbbr('E', 'T') Into :RouteDamageIDE; IF (RouteDamageID = RouteDamageIDA) THEN BEGIN RouteDamageID = RouteDamageIDE; END ELSE IF (RouteDamageID = RouteDamageIDE) THEN RouteDamageID = RouteDamageIDA; /* invert event path length */ InternalPathLength = ReachLength - InternalPathLength + MinDist; PathLength = InternalPathLength; IF (Code = 'PA') THEN BEGIN PipeStart = InternalPathLength; END ELSE IF ((Code = 'HA') AND (PipeStart >= InternalPathLength)) THEN InternalPathLength = PipeStart + 0.01; /* find reverse abbr */ SELECT RevAbbrID FROM RevAbbr WHERE AbbrID = :DamageCodeID INTO :RevDamageCodeID; IF (RevDamageCodeID IS NULL) THEN RevDamageCodeID = :DamageCodeID; /* update event */ UPDATE Event SET PathLength = :PathLength, InternalPathLength = :InternalPathLength, PositionFrom = :PositionFrom, PositionTo = :PositionTo, RouteDamageID = :RouteDamageID, CodeID = :RevDamageCodeID WHERE EventID = :EventID; END END END; CREATE PROCEDURE ChangeReachFlowDirection(StructureID integer, NewFlowDirectionID integer) AS DECLARE VARIABLE FlowDirectionID integer; DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE EventID integer; BEGIN /* check current flow dir and update if different than target direction*/ SELECT FlowDirectionID, TVInspectionID FROM TVInspection I INNER JOIN Reach R ON I.StructureID = R.StructureID WHERE I.StructureID = :StructureID INTO :FlowDirectionID, :TVInspectionID; IF ((NewFlowDirectionID IS NOT NULL) AND (FlowDirectionID IS NOT NULL) AND (FlowDirectionID <> NewFlowDirectionID)) THEN BEGIN /* reverse order of events */ EXECUTE PROCEDURE ReverseEvents :TvInspectionID; /* update reach and inspection values */ SELECT UpperManholeID, LowerManholeID FROM Reach WHERE StructureID = :StructureID INTO :UpperManholeID, :LowerManholeID; UPDATE Reach SET UpperManholeID = :LowerManholeID, LowerManholeID = :UpperManholeID WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = :NewFlowDirectionID, Flag = 'X' WHERE StructureID = :StructureID; END END; CREATE PROCEDURE ChangeReachFlowDirections(NewFlowDirectionID integer) AS DECLARE VARIABLE StructureID integer; BEGIN FOR SELECT StructureID FROM Reach INTO :StructureID DO BEGIN EXECUTE PROCEDURE ChangeReachFlowDirection :StructureID, :NewFlowDirectionID; END END; CREATE PROCEDURE ChangeConnFlowDirection(StructureID integer, NewFlowDirectionID integer) AS DECLARE VARIABLE FlowDirectionID integer; DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE EventID integer; BEGIN /* check current flow dir and update if different than target direction*/ SELECT FlowDirectionID, TVInspectionID FROM TVInspection I INNER JOIN HouseConnection HC ON I.StructureID = HC.StructureID WHERE I.StructureID = :StructureID INTO :FlowDirectionID, :TVInspectionID; IF ((NewFlowDirectionID IS NOT NULL) AND (FlowDirectionID IS NOT NULL) AND (FlowDirectionID <> NewFlowDirectionID)) THEN BEGIN /* reverse order of events */ /* EXECUTE PROCEDURE ReverseEvents :TvInspectionID; -- update reach and inspection values SELECT UpperManholeID, LowerManholeID FROM Reach WHERE StructureID = :StructureID INTO :UpperManholeID, :LowerManholeID; UPDATE Reach SET UpperManholeID = :LowerManholeID, LowerManholeID = :UpperManholeID WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = :NewFlowDirectionID, Flag = 'X' WHERE StructureID = :StructureID;*/ END END; CREATE PROCEDURE ChangeConnFlowDirections(NewFlowDirectionID integer) AS DECLARE VARIABLE StructureID integer; BEGIN /* FOR SELECT StructureID FROM HouseConnection INTO :StructureID DO BEGIN EXECUTE PROCEDURE ChangeConnFlowDirection :StructureID, :NewFlowDirectionID; END*/ END; CREATE TABLE Language (LanguageID integer NOT NULL PRIMARY KEY, Code varchar(10), Name varchar(40), IsActive smallint DEFAULT 0 ); 4CREATE UNIQUE INDEX Language_idx ON Language(Code); CREATE GENERATOR Language_gen; lCREATE TABLE AbbrSet (AbbrSetID integer NOT NULL PRIMARY KEY, Name varchar(40), FullName varchar(256) ); 2CREATE UNIQUE INDEX AbbrSet_idx ON AbbrSet(Name); CREATE GENERATOR AbbrSet_gen; qCREATE TABLE Prefix (PrefixReach varchar(20), PrefixHouseConnection varchar(20), PrefixManhole varchar(20) ); CREATE TABLE AbbrClass (AbbrClassID integer NOT NULL PRIMARY KEY, AbbrSetID integer REFERENCES AbbrSet, Code varchar(10) ); CREATE TABLE AbbrClassText (LanguageID integer NOT NULL REFERENCES Language, AbbrClassID integer NOT NULL REFERENCES AbbrClass, FullText varchar(256), PRIMARY KEY (LanguageID,AbbrClassID) ); /CREATE INDEX AbbrClass_idx ON AbbrClass(Code); CREATE GENERATOR AbbrClass_gen; dCREATE TABLE SpecialAbbrClass (SpecialAbbrClassID integer NOT NULL PRIMARY KEY, Code varchar(10)) CREATE TABLE SpecialAbbrClassText (SpecialAbbrClassID integer NOT NULL REFERENCES SpecialAbbrClass, LanguageID integer NOT NULL REFERENCES Language, FullText varchar(256), PRIMARY KEY(SpecialAbbrClassID,LanguageID) ) VCREATE TABLE Unit (UnitID integer NOT NULL PRIMARY KEY, Name varchar(20) NOT NULL); ,CREATE UNIQUE INDEX Unit_idx ON Unit(Name); CREATE GENERATOR Unit_gen CREATE TABLE Abbr (AbbrID integer NOT NULL PRIMARY KEY, AbbrClassID integer NOT NULL REFERENCES AbbrClass, Unit1 integer REFERENCES Unit, Unit2 integer REFERENCES Unit, IsQuickAccess smallint ); CREATE TABLE RevAbbr (AbbrID integer NOT NULL REFERENCES Abbr, RevAbbrID integer NOT NULL REFERENCES Abbr, PRIMARY KEY (AbbrID,RevAbbrID)); CREATE TABLE AbbrText (AbbrID integer NOT NULL REFERENCES Abbr, LanguageID integer NOT NULL REFERENCES Language, Code varchar(10), FullText varchar(256), PRIMARY KEY (AbbrID,LanguageID)); )CREATE INDEX Abbr_idx ON AbbrText(Code); CREATE GENERATOR Abbr_gen; CREATE TABLE LAbbrSpecialAbbrClass (SpecialAbbrClassID integer NOT NULL REFERENCES SpecialAbbrClass, AbbrID integer NOT NULL REFERENCES Abbr ); COMMIT 0INSERT INTO Language VALUES(1,'de','Deutsch',0) 0INSERT INTO Language VALUES(2,'en','English',1) <INSERT INTO Language VALUES(3,'en_us','American English',0) ,INSERT INTO SpecialAbbrClass VALUES(1,'HA') ,INSERT INTO SpecialAbbrClass VALUES(2,'PA') +INSERT INTO SpecialAbbrClass VALUES(3,'E') ,INSERT INTO SpecialAbbrClass VALUES(4,'PE') ,INSERT INTO SpecialAbbrClass VALUES(5,'EH') +INSERT INTO SpecialAbbrClass VALUES(6,'A') -INSERT INTO SpecialAbbrClass VALUES(7,'ANS') -INSERT INTO SpecialAbbrClass VALUES(8,'BOG') +INSERT INTO SpecialAbbrClass VALUES(9,'D') /INSERT INTO SpecialAbbrClass VALUES(10,'STRA') /INSERT INTO SpecialAbbrClass VALUES(11,'STRE') -INSERT INTO SpecialAbbrClass VALUES(13,'II') -INSERT INTO SpecialAbbrClass VALUES(14,'HL') ,INSERT INTO SpecialAbbrClass VALUES(15,'M') >INSERT INTO SpecialAbbrClassText VALUES(1,2,'Haltungsanfang') :INSERT INTO SpecialAbbrClassText VALUES(2,2,'Rohranfang') >INSERT INTO SpecialAbbrClassText VALUES(3,2,'Richtiges Ende') 8INSERT INTO SpecialAbbrClassText VALUES(4,2,'Rohrende') <INSERT INTO SpecialAbbrClassText VALUES(5,2,'Haltungsende') 7INSERT INTO SpecialAbbrClassText VALUES(6,2,'Abbruch') =INSERT INTO SpecialAbbrClassText VALUES(7,2,'Hausanschluss') 5INSERT INTO SpecialAbbrClassText VALUES(8,2,'Bogen') ;INSERT INTO SpecialAbbrClassText VALUES(9,2,'Deformation') GINSERT INTO SpecialAbbrClassText VALUES(10,2,'Streckenschaden Anfang') EINSERT INTO SpecialAbbrClassText VALUES(11,2,'Streckenschaden Ende') :INSERT INTO SpecialAbbrClassText VALUES(13,2,'Kommentar') ?INSERT INTO SpecialAbbrClassText VALUES(14,2,'Haltungslaenge') 8INSERT INTO SpecialAbbrClassText VALUES(15,2,'Messbar') CREATE PROCEDURE AddAbbrSet (Name varchar(40),FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN SELECT AbbrSetID FROM AbbrSet WHERE Name=:Name INTO :AbbrSetID; IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen,1); INSERT INTO AbbrSet(AbbrSetID,Name,FullName) VALUES(:AbbrSetID,:Name,:FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET FullName=:FullName WHERE AbbrSetID=:AbbrSetID; END END END 6CREATE PROCEDURE AddAbbrClass (AbbrSet varchar(40),Code varchar(10),FullText varchar(256),LanguageID integer) RETURNS (AbbrClassID integer) AS DECLARE VARIABLE AbbrSetID integer; DECLARE VARIABLE CurrClassName varchar(256); BEGIN EXECUTE PROCEDURE AddAbbrSet(AbbrSet,'') RETURNING_VALUES(:AbbrSetID); SELECT ACT.AbbrClassID,ACT.FullText FROM AbbrClassText ACT INNER JOIN AbbrClass AC ON ACT.AbbrClassID = AC.AbbrClassID INNER JOIN AbbrSet ASet ON AC.AbbrSetID=ASet.AbbrSetID AND ASet.Name=:AbbrSet WHERE Code=:Code AND LanguageID=:LanguageID INTO :AbbrClassID,:CurrClassName; IF (:AbbrClassID IS NULL) THEN BEGIN AbbrClassID = GEN_ID(AbbrClass_gen,1); INSERT INTO AbbrClass(AbbrClassID,AbbrSetID,Code) VALUES(:AbbrClassID,:AbbrSetID,:Code); INSERT INTO AbbrClassText(AbbrClassID,LanguageID,FullText) VALUES(:AbbrClassID,:LanguageID,:FullText); END ELSE BEGIN IF ((:FullText IS NOT NULL) AND (:FullText <> :CurrClassName)) THEN BEGIN UPDATE AbbrClassText SET FullText=:FullText WHERE AbbrClassID=:AbbrClassID AND LanguageID=:LanguageID; END END END "CREATE PROCEDURE FindUnit(Name varchar(20)) RETURNS (UnitID integer) AS BEGIN SELECT UnitID FROM Unit WHERE Name=:Name INTO :UnitID; IF ((:UnitID IS NULL) AND (:Name IS NOT NULL)) THEN BEGIN UnitID = GEN_ID(Unit_gen,1); INSERT INTO Unit(UnitID,Name) VALUES (:UnitID,:Name); END END UCREATE PROCEDURE UpdateAbbr (AbbrID integer,LanguageID integer,Code varchar(10),FullText varchar(256), Unit1 varchar(20),Unit2 varchar(20),RevCode varchar(10),QuickAccess smallint) AS DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); UPDATE Abbr SET Unit1=:Unit1ID,Unit2=:Unit2ID,IsQuickAccess=:QuickAccess WHERE AbbrID=:AbbrID; UPDATE AbbrText SET FullText=:FullText WHERE AbbrID=:AbbrID AND LanguageID=:LanguageID; /*searching for reverse code*/ IF ((:RevCode IS NOT NULL) AND (:RevCode <> '')) THEN BEGIN SELECT AbbrClassID FROM Abbr WHERE AbbrID=:AbbrID INTO :ClassID; SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :RevCode INTO RevAbbrID; IF (:RevAbbrID IS NULL) THEN BEGIN RevAbbrID = GEN_ID(Abbr_gen,1); INSERT INTO Abbr(AbbrID,AbbrClassID) VALUES (:RevAbbrID,:ClassID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:AbbrID,:RevAbbrID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:RevAbbrID,:AbbrID); INSERT INTO AbbrText(AbbrID,LanguageID,Code) VALUES (:RevAbbrID,:LanguageID,:RevCode); END END END ]CREATE PROCEDURE AddAbbr (AbbrSet varchar(40),ClassCode varchar(10), Code varchar(10),FullText varchar(256), Unit1 varchar(20),Unit2 varchar(20), RevCode varchar(10),QuickAccess smallint,LanguageID integer) RETURNS (AbbrID integer) AS DECLARE VARIABLE SetID integer; DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE AddAbbrSet(:AbbrSet,'') RETURNING_VALUES :SetID; EXECUTE PROCEDURE AddAbbrClass(:AbbrSet,:ClassCode,NULL,:LanguageID) RETURNING_VALUES :ClassID; /*searching for current code*/ SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :Code INTO AbbrID; IF (:AbbrID IS NULL) THEN BEGIN AbbrID = GEN_ID(Abbr_gen,1); INSERT INTO Abbr(AbbrID,AbbrClassID) VALUES (:AbbrID,:ClassID); INSERT INTO AbbrText(AbbrID,LanguageID,Code) VALUES (:AbbrID,:LanguageID,:Code); END EXECUTE PROCEDURE UpdateAbbr(:AbbrID,:LanguageID,:Code,:FullText,:Unit1,:Unit2,:RevCode,:QuickAccess); END sCREATE PROCEDURE AbbrSetName RETURNS (Name varchar(40)) AS BEGIN SELECT Upper(Name) FROM AbbrSet INTO :Name; END; 5CREATE PROCEDURE FindAbbr(AbbrCode varchar(10),AbbrClassCode varchar(10)) RETURNS(AbbrID integer) AS BEGIN FOR SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID INNER JOIN AbbrClassText ACTX ON AC.AbbrClassID=ACTX.AbbrClassID INNER JOIN Language L1 ON ACTX.LanguageID=L1.LanguageID AND L1.IsActive=1 INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L2 ON ATX.LanguageID=L2.LanguageID AND L1.IsActive=1 WHERE ATX.Code=:AbbrCode AND AC.Code=:AbbrClassCode INTO :AbbrID DO BEGIN SUSPEND; END END CREATE PROCEDURE GetAvailableAbbrStageValues(Mode varchar(5),CurrentVal varchar(3),Stage smallint) RETURNS(AbbrID integer,Code varchar(10),FullText varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN SELECT FIRST 1 Name FROM AbbrSet INTO :AbbrSet; IF (:AbbrSet='EN13508' OR :AbbrSet='ISYBAU06') THEN BEGIN FOR SELECT ATX.AbbrID,ATX.Code,ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID=ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code=:Mode||:Stage WHERE ATX.Code LIKE :CurrentVal||'%' ORDER BY ATX.Code INTO :AbbrID,:Code,:FullText DO BEGIN SUSPEND; END END ELSE BEGIN FOR SELECT ATX.AbbrID,ATX.Code,ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID=ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code=:Mode||:Stage WHERE EXISTS (SELECT * FROM AbbrText ATX2 INNER JOIN Abbr A2 ON A2.AbbrID=ATX2.AbbrID INNER JOIN AbbrClass AC2 ON A2.AbbrClassID=AC2.AbbrClassID AND AC2.Code=:Mode WHERE ATX2.Code LIKE :CurrentVal||ATX.Code||'%') ORDER BY ATX.Code INTO :AbbrID,:Code,:FullText DO BEGIN SUSPEND; END END END CREATE PROCEDURE GetAbbrPrefixes RETURNS (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN SELECT FIRST 1 PrefixReach,PrefixHouseConnection,PrefixManhole FROM Prefix INTO :PrefixReach,:PrefixHouseConnection,:PrefixManhole; END CREATE PROCEDURE SetAbbrPrefixes(PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN UPDATE Prefix SET PrefixReach=:PrefixReach,PrefixHouseConnection=:PrefixHouseConnection,PrefixManhole=:PrefixManhole; END SCREATE TABLE Wizard ( WizardID integer NOT NULL PRIMARY KEY, Name varchar(50) ); CREATE GENERATOR Wizard_gen; CREATE TABLE WizardField ( WizardFieldID integer NOT NULL PRIMARY KEY, WizardID integer NOT NULL REFERENCES Wizard ON DELETE CASCADE, Name varchar(50) ); "CREATE GENERATOR WizardField_gen; CREATE TABLE Rule ( RuleID integer NOT NULL PRIMARY KEY, WizardFieldID integer REFERENCES WizardField ON DELETE SET NULL, Name varchar(100), Code varchar(8191) ); CREATE GENERATOR Rule_gen; COMMIT CREATE TRIGGER BEFORE_INSERT_WIZARD FOR Wizard ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.WizardID = 0) THEN NEW.WizardID = GEN_ID(Wizard_gen, 1); END CREATE TRIGGER BEFORE_INSERT_WIZARDFIELD FOR WizardField ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.WizardFieldID = 0) THEN NEW.WizardFieldID = GEN_ID(WizardField_gen, 1); END CREATE TRIGGER BEFORE_INSERT_RULE FOR Rule ACTIVE BEFORE INSERT POSITION 0 AS BEGIN IF (NEW.RuleID = 0) THEN NEW.RuleID = GEN_ID(Rule_gen, 1); END COMMIT $CREATE PROCEDURE AddWizard(WizardName varchar(50)) RETURNS (WizardID integer) AS BEGIN SELECT WizardID FROM Wizard WHERE Name = :WizardName INTO :WizardID; IF (WizardID IS NULL) THEN BEGIN WizardID = GEN_ID(Wizard_gen, 1); INSERT INTO Wizard VALUES(:WizardID, :WizardName); END END; CREATE PROCEDURE AddWizardField(WizardName varchar(50), FieldName varchar(50)) RETURNS (WizardFieldID integer) AS DECLARE VARIABLE WizardID integer; BEGIN EXECUTE PROCEDURE AddWizard(:WizardName) RETURNING_VALUES :WizardID; SELECT WizardFieldID FROM WizardField WHERE WizardID = :WizardID AND Name = :FieldName INTO :WizardFieldID; IF (WizardFieldID IS NULL) THEN BEGIN WizardFieldID = GEN_ID(WizardField_gen, 1); INSERT INTO WizardField VALUES(:WizardFieldID, :WizardID, :FieldName); END END; CREATE PROCEDURE AddRule (WizardName varchar(50), WizardFieldName varchar(50), RuleName varchar(100), RuleCode varchar(8191)) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name=:RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID=:WizardFieldID AND Name=:RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code=:RuleCode WHERE RuleID=:RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END; ACREATE PROCEDURE GetRule(Wizard varchar(50), WizardField varchar(50), RuleName varchar(100)) RETURNS (RuleCode varchar(8191)) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID=R.WizardFieldID INNER JOIN Wizard W ON W.WizardID=F.WizardID WHERE R.Name = :RuleName INTO :RuleCode; END ELSE BEGIN SELECT Code FROM Rule WHERE Name = :RuleName INTO :RuleCode; END END; CREATE PROCEDURE DeleteWizard(Wizard varchar(50)) AS DECLARE VARIABLE WizardID integer; BEGIN DELETE FROM Wizard WHERE Name=:Wizard; END; CREATE PROCEDURE DeleteWizardField(Wizard varchar(50), WizardField varchar(50)) AS DECLARE VARIABLE WizardFieldID integer; BEGIN SELECT F.WizardFieldID FROM Wizard W INNER JOIN WizardField F ON W.WizardID=F.WizardID WHERE W.Name=:Wizard AND F.Name=:WizardField INTO :WizardFieldID; IF (WizardFieldID IS NOT NULL) THEN BEGIN DELETE FROM WizardField WHERE WizardFieldID=:WizardFieldID; END END; CREATE PROCEDURE DELETERULE ( WIZARD Varchar(50), WIZARDFIELD Varchar(50), RULENAME Varchar(100) ) AS DECLARE VARIABLE WizardFieldID integer; BEGIN SELECT F.WizardFieldID FROM Wizard W INNER JOIN WizardField F ON W.WizardID=F.WizardID WHERE W.Name=:Wizard AND F.Name=:WizardField INTO :WizardFieldID; IF ((WIZARD IS NOT NULL) AND (WIZARDFIELD IS NOT NULL)) THEN BEGIN IF (WizardFieldID IS NOT NULL) THEN BEGIN DELETE FROM Rule WHERE WizardFieldID=:WizardFieldID AND Name=:RuleName; END END ELSE BEGIN DELETE FROM Rule WHERE WizardFieldID IS NULL AND Name=:RuleName; END END; GALTER TABLE WizardField ADD Priority integer, ADD Caption varchar(255) DROP PROCEDURE AddRule; DROP PROCEDURE GetRule; $ALTER TABLE Rule ADD code_blb blob; COMMIT; !UPDATE Rule SET code_blb = code; COMMIT; ALTER TABLE Rule DROP Code; )ALTER TABLE Rule ALTER code_blb TO code; @IGNORE @IGNORE CREATE OR ALTER PROCEDURE ADDRULE ( WIZARDNAME Varchar(256), WIZARDFIELDNAME Varchar(256), RULENAME Varchar(256), RULECODE blob ) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name = :RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = :RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code = :RuleCode WHERE RuleID = :RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END CREATE OR ALTER PROCEDURE GETRULE ( WIZARD Varchar(256), WIZARDFIELD Varchar(256), RULENAME Varchar(256) ) RETURNS ( RULECODE blob ) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID = R.WizardFieldID INNER JOIN Wizard W ON W.WizardID = F.WizardID WHERE R.Name = :RuleName ORDER BY R.RuleID INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName ORDER BY RuleID INTO :RuleCode; END END @IGNORE --PICOXE-24 -INSERT INTO DEBUGLOG(msg) VALUES ('TEST :)') .INSERT INTO DEBUGLOG(msg) VALUES ('TEST2 :)') /CREATE GENERATOR ReportNo_HouseConnection2_gen 1SET GENERATOR ReportNo_HouseConnection2_gen TO 1 m/*Adding 'no basic body of a separator'*/ --CREATE PROCEDURE temp1 INSERT INTO Debuglog(msg) VALUES ('Ping') E--EXECUTE PROCEDURE temp1; INSERT INTO Debuglog(msg) VALUES ('Ping') /INSERT INTO DEBUGLOG(msg) VALUES ('TEST3 :)'); B--DROP PROCEDURE temp1; INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') K--ALTER PROCEDURE GetManholeByID INSERT INTO Debuglog(msg) VALUES ('Ping') DROP PROCEDURE AddSewerMap !DROP PROCEDURE SetSewerMapActive DROP TABLE SewerMap COMMIT YCREATE TABLE SewerMap ( MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, LocationX decimal(11,3), LocationY decimal(11,3), Rotation float, ScaleX float, ScaleY float, TileSize float, TileCountX integer, TileCountY integer, IsActive smallint ) #CREATE GENERATOR SewerMapTile_Gen; CREATE TABLE SewerMapTile ( ID integer NOT NULL PRIMARY KEY, MultimediaID integer NOT NULL REFERENCES SewerMap ON DELETE CASCADE, Format varchar(3), Data blob sub_type 0 ) COMMIT CREATE PROCEDURE AddSewerMap(StructureID integer, Path varchar(1000), LocationX decimal(11,3), LocationY decimal(11,3), TileSize float, TileCountX integer, TileCountY integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia (MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); INSERT INTO SewerMap (MultimediaID, LocationX, LocationY, Rotation, ScaleX, ScaleY, TileSize, TileCountX, TileCountY, IsActive) VALUES (:MultimediaID, :LocationX, :LocationY, 0, 1, 1, :TileSize, :TileCountX, :TileCountY, 0); END 'CREATE PROCEDURE UpdateSewerMap(MultimediaID integer, Path varchar(1000), LocationX decimal(11,3), LocationY decimal(11,3), Rotation float, ScaleY float, ScaleX float, TileSize float, TileCountX integer, TileCountY integer) AS BEGIN UPDATE Multimedia SET Path = :Path WHERE MultimediaID = :MultimediaID; UPDATE SewerMap SET LocationX = :LocationX, LocationY = :LocationY, Rotation = :Rotation, ScaleX = :ScaleX, ScaleY = :ScaleY, TileSize = :TileSize, TileCountX = :TileCountX, TileCountY = :TileCountY WHERE MultimediaID = :MultimediaID; END CREATE PROCEDURE DeleteSewerMap(MultimediaID integer) AS BEGIN DELETE FROM Multimedia WHERE MultimediaID = :MultimediaID; END ;CREATE PROCEDURE DeactivateSewerMap(MULTIMEDIAID Integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN SELECT TVInspectionID FROM Multimedia WHERE MultimediaID = :MultimediaID INTO :TVInspectionID; IF (TVInspectionID IS NULL) then BEGIN UPDATE SewerMap SET IsActive = 0 WHERE MultimediaID IN (SELECT MultimediaID FROM Multimedia WHERE TVInspectionID IS NULL); END ELSE BEGIN UPDATE SewerMap SET IsActive = 0 WHERE MultimediaID IN (SELECT MultimediaID FROM Multimedia WHERE TVInspectionID = :TVInspectionID); END END CREATE PROCEDURE ActivateSewerMap(MULTIMEDIAID Integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN EXECUTE PROCEDURE DeactivateSewerMap(:MultimediaID); UPDATE SewerMap SET IsActive = 1 WHERE MultimediaID = :MultimediaID; END CREATE PROCEDURE AddSewerMapTile(MultimediaID integer, Format varchar(3), Data blob sub_type 0) RETURNS (TileID integer) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN TileID = GEN_ID(SewerMapTile_Gen, 1); INSERT INTO SewerMapTile (ID, MultimediaID, Format, Data) VALUES (:TileID, :MultimediaID, :Format, :Data); END ELSE BEGIN TileID = 0; END END xCREATE PROCEDURE UpdateSewerMapTile(TileID integer, MultimediaID integer, Format varchar(3), Data blob sub_type 0) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN UPDATE SewerMapTile SET MultimediaID = :MultimediaID, Format = :Format, Data = :Data WHERE ID = :TileID; END END oCREATE PROCEDURE DeleteSewerMapTile(TileID integer) AS BEGIN DELETE FROM SewerMapTile WHERE ID = :TileID; END CREATE PROCEDURE GetTilesBySewerMapID(MultimediaID integer) RETURNS (TileID Integer, Format varchar(3)) AS BEGIN FOR SELECT ID, Format FROM SewerMapTile WHERE MultimediaID = :MultimediaID INTO :TileID, :Format DO BEGIN SUSPEND; END END CREATE PROCEDURE GetTileData(TileID integer) RETURNS (Data blob sub_type 0) AS BEGIN SELECT Data FROM SewerMapTile WHERE ID = :TileID INTO :Data; SUSPEND; END CREATE PROCEDURE DeleteSewerMapTiles(MultimediaID integer) AS BEGIN DELETE FROM SewerMapTile WHERE MultimediaID = :MultimediaID; END >--DROP VIEW TVInsps INSERT INTO Debuglog(msg) VALUES ('Ping') @--CREATE VIEW TVInsps INSERT INTO Debuglog(msg) VALUES ('Ping') I--ALTER PROCEDURE GetReachByID INSERT INTO Debuglog(msg) VALUES ('Ping') /*Patch for lack of On delete cascade in Picture*/ ALTER TRIGGER AFTER_DELETE_EVENT ACTIVE AFTER DELETE POSITION 0 AS BEGIN DELETE FROM Picture WHERE EventID = OLD.EventID; DELETE FROM ABSTRACTEVENT WHERE EVENTID = OLD.EVENTID; END /*Patch for lack of On delete cascade in TVInspection etc.*/ CREATE TRIGGER BEFORE_DELETE_STRUCTURE FOR STRUCTURE ACTIVE BEFORE DELETE POSITION 0 AS BEGIN DELETE FROM TVINSPECTION WHERE StructureID = OLD.StructureID; DELETE FROM PRESSUREINSPECTION WHERE StructureID = OLD.StructureID; DELETE FROM SCANCAMINSPECTION WHERE StructureID = OLD.StructureID; DELETE FROM INCLMEASUREMENT WHERE StructureID = OLD.StructureID; END 2@IGNORE --ALTER PROCEDURE GetPANCamInspectionByID 3@IGNORE --ALTER PROCEDURE GetScanCamInspectionByID '@IGNORE --ALTER PROCEDURE GetReachByID 1@IGNORE --ALTER PROCEDURE GetHouseConnectionByID 3@IGNORE --ALTER PROCEDURE GetScanCamInspectionByID 7ALTER TABLE LStructureStructure ADD Dependency integer 5ALTER TABLE TVInspection ADD EndOfGuaranteeDate date :ALTER TABLE ScanCamInspection ADD EndOfGuaranteeDate date 8ALTER TABLE InclMeasurement ADD EndOfGuaranteeDate date DROP VIEW ReachesFull CREATE VIEW ReachesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1,Comment2) AS SELECT 'H' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN PANCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE PCI.TVInspectionID IS NULL DROP VIEW HouseConnectionsFull NCREATE VIEW HouseConnectionsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'A' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, HC.StartManholeID, NULL AS LowerManholeID, UM.Number AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, HC.RevManhole, HC.DistanceFromManhole, LSS.MasterStructureID AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON HC.StartManholeID = UM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID DROP VIEW ManholesFull CREATE VIEW ManholesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'S' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, NULL AS SewerType, NULL AS MaterialID, NULL AS ProfileType, NULL AS ProfileHeight, NULL AS ProfileWidth, NULL AS ReachLength, NULL AS SitePlanNo, NULL AS MunicipalCode, NULL AS DistrictNo, NULL AS PipeLength, NULL AS WaterProtectionZone, NULL AS PositionInStreet, NULL AS SewerageDistrict, NULL AS UpperManholeID, NULL AS LowerManholeID, NULL AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, MF.Code AS ManholeForm, M.CoordX, M.CoordY, M.CoordExactID, M.CoverHeight, M.CoverExactID, M.BottomHeight, M.BottomExactID, STA.Code AS Status, FS.Code AS FlumeShape, DC.Code AS DefinitionClass, M.CoverDN, M.CoverWidth, CS.Code AS CoverShape, MS.Code AS ManhShape, M.ManhDN, M.ManhWidth, M.TaperShaftRing, MLS.Code AS ManhLowerShape, M.ManhLowerDN, M.ManhLowerWidth, M.ManhLowerHeight, NM.Code AS NeckMaterial, UPM.Code AS UpperPartMaterial, LPM.Code AS LowerPartMaterial, FM.Code AS FlumeMaterial, MST.Code AS ManholeStep, M.DescendingHelp, M.ShaftRing, M.CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.EndOfGuaranteeDate,I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN AbbrText IP ON M.InternalProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText MF ON M.ManholeFormID = MF.AbbrID LEFT OUTER JOIN Language MFLang ON MF.LanguageID = MFLang.LanguageID AND MFLang.IsActive=1 LEFT OUTER JOIN AbbrText STA ON M.StatusID = STA.AbbrID LEFT OUTER JOIN Language STALang ON STA.LanguageID = STALang.LanguageID AND STALang.IsActive=1 LEFT OUTER JOIN AbbrText FS ON M.FlumeShapeID = FS.AbbrID LEFT OUTER JOIN Language FSLang ON FS.LanguageID = FSLang.LanguageID AND FSLang.IsActive=1 LEFT OUTER JOIN AbbrText DC ON M.DefinitionClassID = DC.AbbrID LEFT OUTER JOIN Language DCLang ON DC.LanguageID = DCLang.LanguageID AND DCLang.IsActive=1 LEFT OUTER JOIN AbbrText CS ON M.CoverShapeID = CS.AbbrID LEFT OUTER JOIN Language CSLang ON CS.LanguageID = CSLang.LanguageID AND CSLang.IsActive=1 LEFT OUTER JOIN AbbrText MS ON M.ManhShapeID = MS.AbbrID LEFT OUTER JOIN Language MSLang ON MS.LanguageID = MSLang.LanguageID AND MSLang.IsActive=1 LEFT OUTER JOIN AbbrText MLS ON M.ManhLowerShapeID = MLS.AbbrID LEFT OUTER JOIN Language MLSLang ON MLS.LanguageID = MLSLang.LanguageID AND MLSLang.IsActive=1 LEFT OUTER JOIN AbbrText NM ON M.NeckMaterialID = NM.AbbrID LEFT OUTER JOIN Language NMLang ON NM.LanguageID = NMLang.LanguageID AND NMLang.IsActive=1 LEFT OUTER JOIN AbbrText UPM ON M.UpperPartMaterialID = UPM.AbbrID LEFT OUTER JOIN Language UPMLang ON UPM.LanguageID = UPMLang.LanguageID AND UPMLang.IsActive=1 LEFT OUTER JOIN AbbrText LPM ON M.LowerPartMaterialID = LPM.AbbrID LEFT OUTER JOIN Language LPMLang ON LPM.LanguageID = LPMLang.LanguageID AND LPMLang.IsActive=1 LEFT OUTER JOIN AbbrText FM ON M.FlumeMaterialID = FM.AbbrID LEFT OUTER JOIN Language FMLang ON FM.LanguageID = FMLang.LanguageID AND FMLang.IsActive=1 LEFT OUTER JOIN AbbrText MST ON M.ManholeStepID = MST.AbbrID LEFT OUTER JOIN Language MSTLang ON FM.LanguageID = MSTLang.LanguageID AND MSTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 DROP VIEW PANCamInspsFull iCREATE VIEW PANCamInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'P' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.EndOfGuaranteeDate,I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN PanCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID DROP VIEW TVInspsFull CREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ManholesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM PANCamInspsFull ORDER BY 2 P--ALTER PROCEDURE UpdatePipeStructure INSERT INTO Debuglog(msg) VALUES ('Ping') E--ALTER PROCEDURE AddReach INSERT INTO Debuglog(msg) VALUES ('Ping') I--ALTER PROCEDURE GetReachByID INSERT INTO Debuglog(msg) VALUES ('Ping') H--ALTER PROCEDURE UpdateReach INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE AddHouseConnection INSERT INTO Debuglog(msg) VALUES ('Ping') S--ALTER PROCEDURE GetHouseConnectionByID INSERT INTO Debuglog(msg) VALUES ('Ping') R--ALTER PROCEDURE UpdateHouseConnection INSERT INTO Debuglog(msg) VALUES ('Ping') &ALTER PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END ALTER PROCEDURE AddScanCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END 4ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END ALTER PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END ALTER PROCEDURE AddInclMeasurement (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); InclMeasurementID = GEN_ID(InclMeasurement_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO InclMeasurement(InclMeasurementID,StructureID) VALUES(:InclMeasurementID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END *ALTER PROCEDURE UpdateInclMeasurement (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:StructureID INTO :InclMeasurementID; EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END P--ALTER PROCEDURE AddPANCamInspection INSERT INTO Debuglog(msg) VALUES ('Ping') ALTER PROCEDURE GetPANCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, InspPurposeID,Comment1,Comment2,StartMeter,EndMeter,RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID INNER JOIN PANCamInspection PCI ON TV.TVInspectionID=PCI.TVInspectionID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet, :SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo, :LocationDetails,:FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, :InspPurposeID,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END S--ALTER PROCEDURE UpdatePANCamInspection INSERT INTO Debuglog(msg) VALUES ('Ping') 5ALTER TABLE PressureInspection ADD JobNo varchar(30) COMMIT e--ALTER PROCEDURE GetPressureInspByID(StructureID integer) INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') :ALTER TABLE PipeStructure ADD WallThickness decimal(10,5) COMMIT ALTER PROCEDURE UpdatePipeStructure(StructureID integer,TVInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength,WallThickness=:WallThickness, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE TVInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,FlowControlID=:FlowControlID,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,ResponsiblePersonCertificateNo=:ResponsiblePersonCertificateNo, LocationDetails=:LocationDetails,RenovationYear=:RenovationYear,SewerCategory=:SewerCategory, PreCleaningID=:PreCleaningID,DrainageArea=:DrainageArea,InspPurposeID=:InspPurposeID,Comment1=:Comment1,Comment2=:Comment2 WHERE TVInspectionID=:TVInspectionID; END EINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddReach I--ALTER PROCEDURE GetReachByID INSERT INTO Debuglog(msg) VALUES ('ping') ^--required by UpdatePANCamInspection ALTER PROCEDURE UpdateReach (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WallThickness,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID, :DrainageArea,:InspPurposeID,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END O--ALTER PROCEDURE AddHouseConnection INSERT INTO Debuglog(msg) VALUES ('Ping') S--ALTER PROCEDURE GetHouseConnectionByID INSERT INTO Debuglog(msg) VALUES ('Ping') R--ALTER PROCEDURE UpdateHouseConnection INSERT INTO Debuglog(msg) VALUES ('Ping') >--DROP VIEW TVInsps INSERT INTO Debuglog(msg) VALUES ('Ping') @--CREATE VIEW TVInsps INSERT INTO Debuglog(msg) VALUES ('Ping') pINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddPreset(ControlKey varchar(50),Text varchar(256)) eINSERT INTO Debuglog(msg) VALUES ('Ping') --UPDATE OR INSERT INTO SpecialAbbrClass VALUES(12,'VERT') 3INSERT INTO Debuglog(msg) VALUES ('Ping') --COMMIT yINSERT INTO Debuglog(msg) VALUES ('Ping') --UPDATE OR INSERT INTO SpecialAbbrClassText VALUES(12,1,'Senkrechte Schaden') /*Patch for lack of ON DELETE SET NULL in Event etc.*/ CREATE TRIGGER BEFORE_DELETE_ABBRCLASS For AbbrClass ACTIVE BEFORE DELETE POSITION 0 AS BEGIN DELETE FROM Abbr WHERE AbbrClassID=Old.AbbrClassID; END =/*Patch for lack of ON DELETE SET NULL in Event etc.*/ CREATE TRIGGER BEFORE_DELETE_ABBR FOR Abbr ACTIVE BEFORE DELETE POSITION 0 AS BEGIN DELETE FROM RevAbbr WHERE AbbrID=Old.AbbrID OR RevAbbrID=Old.AbbrID; DELETE FROM LAbbrSpecialAbbrClass WHERE AbbrID=Old.AbbrID; UPDATE TVInspection SET FlowDirectionID=NULL WHERE FlowDirectionID=Old.AbbrID; UPDATE TVInspection SET InspectionModeID=NULL WHERE InspectionModeID=Old.AbbrID; UPDATE TVInspection SET WeatherID=NULL WHERE WeatherID=Old.AbbrID; UPDATE TVInspection SET FlowControlID=NULL WHERE FlowControlID=Old.AbbrID; UPDATE TVInspection SET PreCleaningID=NULL WHERE PreCleaningID =Old.AbbrID; UPDATE TVInspection SET InspPurposeID=NULL WHERE InspPurposeID=Old.AbbrID; UPDATE Manhole SET ManholeFormID=NULL WHERE ManholeFormID=Old.AbbrID; UPDATE Manhole SET CoordExactID=NULL WHERE CoordExactID=Old.AbbrID; UPDATE Manhole SET CoverExactID=NULL WHERE CoverExactID=Old.AbbrID; UPDATE Manhole SET BottomExactID=NULL WHERE BottomExactID=Old.AbbrID; UPDATE Manhole SET StatusID=NULL WHERE StatusID=Old.AbbrID; UPDATE Manhole SET FlumeShapeID=NULL WHERE FlumeShapeID=Old.AbbrID; UPDATE Manhole SET DefinitionClassID=NULL WHERE DefinitionClassID=Old.AbbrID; UPDATE Manhole SET CoverShapeID=NULL WHERE CoverShapeID=Old.AbbrID; UPDATE Manhole SET ManhShapeID=NULL WHERE ManhShapeID=Old.AbbrID; UPDATE Manhole SET ManhLowerShapeID=NULL WHERE ManhLowerShapeID=Old.AbbrID; UPDATE Manhole SET NeckMaterialID=NULL WHERE NeckMaterialID=Old.AbbrID; UPDATE Manhole SET UpperPartMaterialID=NULL WHERE UpperPartMaterialID=Old.AbbrID; UPDATE Manhole SET LowerPartMaterialID=NULL WHERE LowerPartMaterialID=Old.AbbrID; UPDATE Manhole SET FlumeMaterialID=NULL WHERE FlumeMaterialID=Old.AbbrID; UPDATE Manhole SET InternalProtectionID=NULL WHERE InternalProtectionID=Old.AbbrID; UPDATE Manhole SET ManholeStepID=NULL WHERE ManholeStepID=Old.AbbrID; UPDATE PipeStructure SET InnerProtectionID=NULL WHERE InnerProtectionID=Old.AbbrID; UPDATE PipeStructure SET SewerTypeID=NULL WHERE SewerTypeID=Old.AbbrID; UPDATE PipeStructure SET MaterialID=NULL WHERE MaterialID=Old.AbbrID; UPDATE PipeStructure SET ProfileTypeID=NULL WHERE ProfileTypeID=Old.AbbrID; UPDATE PipeStructure SET DistrictNoID=NULL WHERE DistrictNoID=Old.AbbrID; UPDATE PipeStructure SET PositionInStreetID=NULL WHERE PositionInStreetID=Old.AbbrID; UPDATE Event SET CodeID=NULL WHERE CodeID=Old.AbbrID; UPDATE Event SET RouteDamageID=NULL WHERE RouteDamageID=Old.AbbrID; UPDATE ManholeConnection SET TypeID=NULL WHERE TypeID=Old.AbbrID; UPDATE ManholeConnection SET MaterialID=NULL WHERE MaterialID=Old.AbbrID; UPDATE Film SET FlowDirectionID=NULL WHERE FlowDirectionID=Old.AbbrID; UPDATE PressureInspection SET FlowDirectionID=NULL WHERE FlowDirectionID=Old.AbbrID; UPDATE PressureInspection SET ModeID=NULL WHERE ModeID=Old.AbbrID; UPDATE PressureInspection SET WeatherID=NULL WHERE WeatherID=Old.AbbrID; UPDATE JointPressureTest SET DamageID=NULL WHERE DamageID=Old.AbbrID; UPDATE ScanCamInspection SET FlowDirectionID=NULL WHERE FlowDirectionID=Old.AbbrID; UPDATE ScanCamInspection SET InspectionModeID=NULL WHERE InspectionModeID=Old.AbbrID; UPDATE ScanCamInspection SET WeatherID=NULL WHERE WeatherID=Old.AbbrID; UPDATE InclMeasurement SET FlowDirectionID=NULL WHERE FlowDirectionID=Old.AbbrID; UPDATE InclMeasurement SET InspectionModeID=NULL WHERE InspectionModeID=Old.AbbrID; UPDATE InclMeasurement SET WeatherID=NULL WHERE WeatherID=Old.AbbrID; UPDATE StructureParticle SET ShapeID=NULL WHERE ShapeID=Old.AbbrID; UPDATE Measurement SET MeasurementTypeID=NULL WHERE MeasurementTypeID=Old.AbbrID; END 4ALTER PROCEDURE FindAbbr(AbbrCode varchar(10),AbbrClassCode varchar(10)) RETURNS(AbbrID integer) AS BEGIN FOR SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID INNER JOIN AbbrClassText ACTX ON AC.AbbrClassID=ACTX.AbbrClassID INNER JOIN Language L1 ON ACTX.LanguageID=L1.LanguageID AND L1.IsActive=1 INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L2 ON ATX.LanguageID=L2.LanguageID AND L1.IsActive=1 WHERE ATX.Code=:AbbrCode AND AC.Code=:AbbrClassCode INTO :AbbrID DO BEGIN SUSPEND; END END FALTER PROCEDURE UpdateInspAndPipeLength(EventID integer) AS BEGIN END DROP PROCEDURE AddManhole ALTER PROCEDURE UpdateManhole(StructureID integer,Number varchar(40),CodeDigit varchar(256), InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint,ParentEventID integer,ParentStructureID integer) AS BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson=:ResponsiblePerson,Judgement=:StateTotal WHERE StructureID=:StructureID; UPDATE Manhole SET ManholeFormID=:ManholeFormID, CoordX=:CoordX,CoordY=:CoordY,CoordExactID=:CoordExactID, CoverHeight=:CoverHeight,CoverExactID=:CoverExactID,BottomHeight=:BottomHeight,BottomExactID=:BottomExactID, StatusID=:StatusID,FlumeShapeID=:FlumeShapeID,DefinitionClassID=:DefinitionClassID, CoverDN=:CoverDN,CoverWidth=:CoverWidth,CoverShapeID=:CoverShapeID,ManhShapeID=:ManhShapeID,ManhDN=:ManhDN, ManhWidth=:ManhWidth,TaperShaftRing=:TaperShaftRing,ManhLowerShapeID=:ManhLowerShapeID,ManhLowerDN=:ManhLowerDN, ManhLowerWidth=:ManhLowerWidth,ManhLowerHeight=:ManhLowerHeight,NeckMaterialID=:NeckMaterialID, UpperPartMaterialID=:UpperPartMaterialID,LowerPartMaterialID=:LowerPartMaterialID,FlumeMaterialID=:FlumeMaterialID, InternalProtectionID=:InternalProtectionID,ManholeStepID=:ManholeStepID, DescendingHelp=:DescendingHelp,ShaftRing=:ShaftRing,CoverPlate=:CoverPlate WHERE StructureID=:StructureID; DELETE FROM LStructureStructure WHERE StructureID=:StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructureID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; END END R CREATE PROCEDURE AddManhole(Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint,ParentEventID integer,ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen,1); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID,:StructureID); EXECUTE PROCEDURE UpdateManhole(:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :ManholeFormID,:ResponsiblePerson,:StateTotal,:CoordX,:CoordY,:CoordExactID, :CoverHeight,:CoverExactID,:BottomHeight,:BottomExactID,:StatusID,:FlumeShapeID,:DefinitionClassID, :CoverDN,:CoverWidth,:CoverShapeID,:ManhShapeID,:ManhDN,:ManhWidth,:TaperShaftRing,:ManhLowerShapeID,:ManhLowerDN, :ManhLowerWidth,:ManhLowerHeight,:NeckMaterialID,:UpperPartMaterialID,:LowerPartMaterialID,:FlumeMaterialID, :InternalProtectionID,:ManholeStepID,:DescendingHelp,:ShaftRing,:CoverPlate,:ParentEventID,:ParentStructureID); DELETE FROM LStructureStructure WHERE StructureID=:StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructureID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; END END '@IGNORE ALTER PROCEDURE GetManholeByID cALTER TABLE ManholeConnection ADD ChildStructureID integer REFERENCES Structure ON DELETE SET NULL ALTER PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer,TypeID integer,TypeText varchar(256),Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer) AS BEGIN SELECT StructureID,TypeID,ATX.FullText,Dim,Height,MaterialID,ConnPosition,Comment,Coord,ChildStructureID FROM ManholeConnection LEFT OUTER JOIN AbbrText ATX ON TypeID=ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 WHERE ManholeConnectionID=:ManholeConnectionID INTO :StructureID,:TypeID,:TypeText,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord,:ChildStructureID; END gALTER PROCEDURE AddManholeConnection(StructureID integer,TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen,1); IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; SELECT count(*) FROM Structure WHERE StructureID=:ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END INSERT INTO ManholeConnection(ManholeConnectionID,StructureID,TypeID,Dim,Height,MaterialID, ConnPosition,Comment,Coord,ChildStructureID) VALUES(:ManholeConnectionID,:StructureID,:TypeID,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord,:ChildStructureID); END %ALTER PROCEDURE UpdateManholeConnection(ManholeConnectionID integer,StructureID integer, TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer) AS DECLARE VARIABLE ChildStrExists smallint; BEGIN IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; SELECT count(*) FROM Structure WHERE StructureID=:ChildStructureID INTO ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END UPDATE ManholeConnection SET StructureID=:StructureID,TypeID=:TypeID,Dim=:Dim,Height=:Height, MaterialID=:MaterialID,ConnPosition=:ConnPosition,Comment=:Comment,Coord=:Coord,ChildStructureID=:ChildStructureID WHERE ManholeConnectionID=:ManholeConnectionID; END OINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddHouseConnection S--ALTER PROCEDURE GetHouseConnectionByID INSERT INTO Debuglog(msg) VALUES ('Ping') RINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE UpdateHouseConnection DROP VIEW TVInsps CREATE VIEW TVInsps (StructureType, StructureID, Number, InspDate, Street, City, IsActive, UpperManhole, LowerManhole, RevManhole, InspectionLength, ParentStructureID,EventCnt) AS SELECT 'H' AS StructureType,S.StructureID,S.Number,S.InspDate,S.Street,S.City,S.IsActive, UM.Number AS UpperManhole,LM.Number AS LowerManhole,'' AS RevManhole,InspectionLength, NULL AS ParentStructureID,(SELECT COUNT(*) FROM Event EVT WHERE EVT.TVInspectionID=I.TVINSPECTIONID) AS EventCnt FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PANCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE PCI.TVInspectionID IS NULL UNION SELECT 'A' AS StructureType,S.StructureID,S.Number,InspDate,Street,City,IsActive, '' AS UpperManhole,'' AS LowerManhole,RevManhole,InspectionLength, LSS.MasterStructureID AS ParentStructureID,(SELECT COUNT(*) FROM Event EVT WHERE EVT.TVInspectionID=I.TVINSPECTIONID) AS EventCnt FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID AND LSS.Dependency IS NULL UNION SELECT 'S' AS StructureType,S.StructureID,S.Number,InspDate,Street,City,IsActive, '' AS UpperManhole,'' AS LowerManhole,'' AS RevManhole,0 AS InspectionLength, LSS.MasterStructureID AS ParentStructureID,(SELECT COUNT(*) FROM Event EVT WHERE EVT.TVInspectionID=I.TVINSPECTIONID)+ (SELECT COUNT(*) FROM ManholeConnection MC WHERE MC.StructureID=S.StructureID) AS EventCnt FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID AND LSS.Dependency IS NULL UNION SELECT 'P' AS StructureType,S.StructureID,S.Number,S.InspDate,S.Street,S.City,S.IsActive, UM.Number AS UpperManhole,LM.Number AS LowerManhole,'' AS RevManhole,InspectionLength, NULL AS ParentStructureID,(SELECT COUNT(*) FROM Event EVT WHERE EVT.TVInspectionID=I.TVINSPECTIONID) AS EventCnt FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN PanCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID ORDER BY 2 SINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetHouseConnectionByID I--ALTER PROCEDURE GetEventByID INSERT INTO Debuglog(msg) VALUES ('Ping') H--ALTER PROCEDURE UpdateEvent INSERT INTO Debuglog(msg) VALUES ('Ping') P--ALTER PROCEDURE AddPANCamInspection INSERT INTO Debuglog(msg) VALUES ('Ping') ] ALTER PROCEDURE UpdatePANCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer,UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer, DrainageArea varchar(15),InspPurposeID integer, Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS BEGIN EXECUTE PROCEDURE UpdateReach(StructureID,Number,CodeDigit,InspDate,Street,StreetCode, Zip,City,BuildYear,ReportNo,UpperManhole, LowerManhole,FlowDirectionID,InspectionModeID,InspectionMode, OrdererPresent,ContractorPresent,InnerProtectionID,SewerTypeID, MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth, ReachLength,Judgement,Timepoint,PictureQuality, VideoCounter,VideoTape,SectionNo,ResponsiblePerson, SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo, CityMapPageNo,StreetSurface,WeatherID,Weather,SewerNo,Scale, PipeLength,0,WaterProtectionZone,PositionInStreetID, PositionInStreet,SewerageDistrict,EndOfGuarantee,EndOfGuaranteeDate, CleaningDate,Queue,TypeOfSealing,Flag, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea,InspPurposeID,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D); END CREATE PROCEDURE ConditionallyCombineInsps(MainID integer,ReverseID integer) AS DECLARE VARIABLE EH integer; BEGIN SELECT count(*) FROM STRUCTURE s INNER JOIN TVINSPECTION I ON I.STRUCTUREID=s.STRUCTUREID INNER JOIN event E ON E.tvinspectionid=I.TVINSPECTIONID INNER JOIN abbr A ON E.codeid=A.ABBRID INNER JOIN LABBRSPECIALABBRCLASS LAS ON LAS.ABBRID=A.ABBRID INNER JOIN SPECIALABBRCLASS SAC ON LAS.SPECIALABBRCLASSID=SAC.SPECIALABBRCLASSID AND SAC.CODE='EH' WHERE S.StructureID in (:MainID,:ReverseID) INTO :EH; IF (EH = 0) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID,Dependency) VALUES(:MainID,:ReverseID,1); END END /*EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'PREFIX')) THEN EXECUTE STATEMENT 'CREATE TABLE Prefix (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20))'; END*/ INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'PREFIX')) THEN EXECUTE STATEMENT 'CREATE TABLE Prefix (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20))'; END CREATE OR ALTER PROCEDURE GetAbbrPrefixes RETURNS (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN SELECT FIRST 1 PrefixReach,PrefixHouseConnection,PrefixManhole FROM Prefix INTO :PrefixReach,:PrefixHouseConnection,:PrefixManhole; END CREATE OR ALTER PROCEDURE SetAbbrPrefixes(PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN DELETE FROM Prefix; INSERT INTO Prefix VALUES (:PrefixReach,:PrefixHouseConnection,:PrefixManhole); END fALTER PROCEDURE AddPicture(StructureID integer,EventID integer,Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia(MultimediaID,Path,TVInspectionID) VALUES (:MultimediaID,:Path,:TVInspectionID); IF (:EventID > 0) THEN BEGIN INSERT INTO Picture(MultimediaID,EventID) VALUES (:MultimediaID,:EventID); END ELSE BEGIN INSERT INTO Picture(MultimediaID,EventID) VALUES (:MultimediaID,NULL); END END sALTER PROCEDURE DeletePicture(StructureID integer,EventID integer,Path varchar(1000)) AS DECLARE VARIABLE MultimediaID integer; BEGIN SELECT M.MultimediaID FROM TVInspection T, Multimedia M, Picture P WHERE T.TVInspectionID = M.TVInspectionID AND M.MultimediaID = P.MultimediaID AND T.StructureID = :StructureID AND M.Path = :Path AND (:EventID = 0 OR P.EventID = :EventID) INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN DELETE FROM Picture WHERE MultimediaID = :MultimediaID AND (:EventID=0 OR EventID = :EventID); DELETE FROM Multimedia WHERE MultimediaID = :MultimediaID AND Path = :Path; END END CREATE TABLE PressureTestedHouseConnection( PressureTestedHouseConnectionID integer NOT NULL PRIMARY KEY, JointPressureTestID integer REFERENCES JointPressureTest, HouseConnectionID integer REFERENCES HouseConnection, MaterialID integer REFERENCES Abbr, ProfileTypeID integer REFERENCES Abbr, ProfileHeight decimal(10,5) /*mm or inch*/, ProfileWidth decimal(10,5)/*mm on inch*/, TestedLength decimal(10,5) ) 'CREATE GENERATOR PressureTestedHC_gen; a--ALTER PROCEDURE DeletePressureTest(EventID integer) INSERT INTO Debuglog(msg) VALUES ('Ping') DROP VIEW Abbrs CREATE VIEW Abbrs (AbbrID,Code,FullText) AS SELECT A.AbbrID,ATX.Code,ATX.FullText FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID CREATE TABLE PressureTestData( PressureTestDataID integer NOT NULL PRIMARY KEY, NominalPressure decimal(6,2), Reference decimal(6,2), NominalTestTime time, NominalSedation time, Volume decimal(6,2), SurfaceArea decimal(6,2) ) 'CREATE GENERATOR PressureTestData_gen; lALTER TABLE PressureInspection ADD PressureTestDataID integer REFERENCES PressureTestData ON DELETE CASCADE COMMIT EXECUTE BLOCK AS DECLARE VARIABLE PTDID integer; DECLARE VARIABLE PIID integer; DECLARE VARIABLE NP decimal(6,2); DECLARE VARIABLE Ref decimal(6,2); DECLARE VARIABLE NTT time; DECLARE VARIABLE NS time; DECLARE VARIABLE V decimal(6,2); DECLARE VARIABLE A decimal(6,2); BEGIN FOR SELECT PressureInspectionID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea FROM PressureInspection INTO :PIID,:NP,:Ref,:NTT,:NS,:V,:A DO BEGIN PTDID=GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PTDID,:NP,:Ref,:NTT,:NS,:V,:A); UPDATE PressureInspection SET PressureTestDataID=:PTDID WHERE PressureInspectionID=:PIID; END END DROP VIEW JointPressInspsFull P--ALTER PROCEDURE GetPressureInspByID INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') COMMIT  CREATE VIEW JointPressInspsFull (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, PressureInspectionID, Mode, FlowDirectionID, FlowDirection, OrdererPresent, ContractorPresent, ResponsiblePerson, Weather, Device, Norm, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea, Flag, Comment1, Comment2) AS SELECT S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, I.PressureInspectionID, MD.Code AS Mode, I.FlowDirectionID, FD.Code AS FlowDirection, I.OrdererPresent, I.ContractorPresent, I.ResponsiblePerson, I.Weather, I.Device, I.Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, PTD.Volume, PTD.SurfaceArea, I.Flag, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN PressureInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PressureTestData PTD ON PTD.PressureTestDataID=I.PressureTestDataID LEFT OUTER JOIN Abbrs IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Abbrs ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Abbrs MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Abbrs PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Abbrs MD ON I.ModeID = MD.AbbrID LEFT OUTER JOIN Abbrs FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE MD.Code IN ('MW', 'ML') lALTER TABLE JointPressureTest ADD PressureTestDataID integer REFERENCES PressureTestData ON DELETE CASCADE K--ALTER PROCEDURE AddPressureTest INSERT INTO Debuglog(msg) VALUES('PING') P--ALTER PROCEDURE GetPressureTestByID INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureTest INSERT INTO Debuglog(msg) VALUES ('Ping') ALTER PROCEDURE DeletePressureTest(EventID integer) AS BEGIN DELETE FROM Measurement WHERE EventID=:EventID; DELETE FROM JointPressureTest WHERE EventID=:EventID; DELETE FROM PressureTest WHERE EventID=:EventID; DELETE FROM AbstractEvent WHERE EventID=:EventID; END O--ALTER PROCEDURE GetPressureTestByID INSERT INTO Debuglog(msg) VALUES('Ping') O--ALTER PROCEDURE UpdatePressureTest INSERT INTO Debuglog(msg) VALUES ('Ping') EALTER TABLE PressureInspection ADD InspectedTubeLength decimal(6,2); COMMIT XEXECUTE BLOCK AS DECLARE VARIABLE PIID integer; DECLARE VARIABLE ITL integer; BEGIN FOR SELECT PressureInspectionID,InspectedTubeLength FROM JointPressureTest JPT INNER JOIN PressureTest PT ON JPT.EventID=PT.EventID INTO :PIID,:ITL DO BEGIN UPDATE PressureInspection SET InspectedTubeLength=:ITL WHERE PressureInspectionID=:PIID; END END DROP VIEW JointPressEvents "CREATE VIEW JointPressEvents (PressureInspectionID, PathLength, InspectedPathLength, VideoCounter, JointNo, Pressure, P1Start, P1End, P1Hermetic, StartTime, EndTime, DamageText, Comment) AS SELECT PT.PressureInspectionID, PathLength, PI.InspectedTubeLength, VideoCounter, JointNo, BalloonPressure, P1Start, P1End, P1Hermetic, StartTime, EndTime, DamageText, Comment FROM PressureTest PT INNER JOIN JointPressureTest JPT ON PT.EventID = JPT.EventID INNER JOIN PressureInspection PI ON PT.PressureInspectionID=PI.PressureInspectionID ORDER BY 1 COMMIT K--ALTER PROCEDURE AddPressureTest INSERT INTO Debuglog(msg) VALUES('Ping') N--ALTER PROCEDURE UpdatePressureTest INSERT INTO Debuglog(msg) VALUES('Ping') O--ALTER PROCEDURE GetPressureTestByID INSERT INTO Debuglog(msg) VALUES('Ping') c--ALTER TABLE JointPressureTest DROP InspectedTubeLength INSERT INTO Debuglog(msg) VALUES ('Ping') P--ALTER PROCEDURE GetPressureInspByID INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') 7UPDATE Project SET FilmFormatID=1 WHERE FilmFormatID=4 X--DELETE FROM FilmFormat WHERE FilmFormatID=4 INSERT INTO Debuglog(msg) VALUES ('Ping') ^INSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetReachByID(StructureID integer) :--EXECUTE BLOCK INSERT INTO Debuglog(msg) VALUES ('Ping') :--EXECUTE BLOCK INSERT INTO Debuglog(msg) VALUES ('Ping') EXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; DECLARE VARIABLE setName varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES setName; EXECUTE PROCEDURE AddAbbr(setName,'LZ','0','Kein',NULL,NULL,NULL,NULL,0,1,'') RETURNING_VALUES AbbrID; END 1CREATE TABLE Report (MultimediaID integer NOT NULL PRIMARY KEY REFERENCES Multimedia ON DELETE CASCADE, ReportType varchar(10), PressureInspectionID integer REFERENCES PressureInspection, InclMeasurementID integer REFERENCES InclMeasurement, ScanCamInspectionID integer REFERENCES ScanCamInspection) COMMIT >CREATE PROCEDURE AddReport(Report varchar(1000),ReportType varchar(10),TVInspectionID integer,PressureInspectionID integer, InclMeasurementID integer,ScanCamInspectionID integer) RETURNS (MultimediaID integer) AS BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); INSERT INTO Multimedia(MultimediaID,TVInspectionID,Path) VALUES(:MultimediaID,:TVInspectionID,:Report); INSERT INTO Report(MultimediaID,ReportType,PressureInspectionID,InclMeasurementID,ScanCamInspectionID) VALUES (:MultimediaID,:ReportType,:PressureInspectionID,:InclMeasurementID,:ScanCamInspectionID); END DROP PROCEDURE AddReport ALTER TABLE Report DROP PressureInspectionID, DROP InclMeasurementID, DROP ScanCamInspectionID, ADD StructureID integer REFERENCES Structure ON DELETE CASCADE COMMIT |CREATE PROCEDURE AddReport(Report varchar(1000),ReportType varchar(100),StructureID integer) RETURNS (MultimediaID integer) AS BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); INSERT INTO Multimedia(MultimediaID,TVInspectionID,Path) VALUES(:MultimediaID,NULL,:Report); INSERT INTO Report(MultimediaID,ReportType,StructureID) VALUES (:MultimediaID,:ReportType,:StructureID); END .ALTER TABLE PressureTest ADD AddedWater float COMMIT +UPDATE PressureTest SET AddedWater = Added L--ALTER PROCEDURE AddPressureTest INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureTest INSERT INTO Debuglog(msg) VALUES ('Ping') P--ALTER PROCEDURE GetPressureTestByID INSERT INTO Debuglog(msg) VALUES ('Ping') $ALTER TABLE PressureTest DROP Added 3--COMMIT INSERT INTO Debuglog(msg) VALUES ('Ping') DROP PROCEDURE AddPressureInsp "DROP PROCEDURE UpdatePressureInsp #DROP PROCEDURE GetPressureInspByID DROP PROCEDURE AddPressureTest #DROP PROCEDURE GetPressureTestByID "DROP PROCEDURE UpdatePressureTest DROP VIEW JointPressInspsFull COMMIT NCREATE TABLE Temp(PTDID integer,Volume decimal(6,3),SurfaceArea decimal(6,3)) COMMIT WEXECUTE BLOCK AS DECLARE VARIABLE PTDID integer; DECLARE VARIABLE Volume decimal(6,3); DECLARE VARIABLE SurfaceArea decimal(6,3); BEGIN FOR SELECT PressureTestDataID,Volume,SurfaceArea FROM PressureTestData INTO :PTDID,:Volume,:SurfaceArea DO BEGIN INSERT INTO Temp(PTDID,Volume,SurfaceArea) VALUES (:PTDID,:Volume,:SurfaceArea); END END :ALTER TABLE PressureTestData DROP Volume,DROP SurfaceArea RALTER TABLE PressureTestData ADD Volume decimal(6,3),ADD SurfaceArea decimal(6,3) COMMIT REXECUTE BLOCK AS DECLARE VARIABLE PTDID integer; DECLARE VARIABLE Volume decimal(6,3); DECLARE VARIABLE SurfaceArea decimal(6,3); BEGIN FOR SELECT PTDID,Volume,SurfaceArea FROM Temp INTO :PTDID,:Volume,:SurfaceArea DO BEGIN UPDATE PressureTestData SET Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PTDID; END END DROP TABLE Temp CREATE PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40)) AS BEGIN SELECT ModeID,S.Number,UM.Number,LM.Number,S.Street,/*InspectionMode,*/OrdererPresent,ContractorPresent, S.StreetCode,S.City,S.InspDate,S.ZIP,S.CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,InspectedTubeLength,/*VideoTape,*/ResponsiblePerson,/*SectionNo,*/S.BuildYear,Device,Norm,PTD.NominalPressure, PTD.Reference,PTD.NominalTestTime,PTD.NominalSedation,/*TypeOfSealing,*/Weather,PipeLength,WaterProtectionZone,PTD.Volume,PTD.SurfaceArea,S.ReportNo, Comment1,Comment2,JobNo FROM Structure S LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID,:Number,:StartManhole,:EndManhole,:Street,OrdererPresent,ContractorPresent, StreetCode,City,InspDate,ZIP,CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,InspectedTubeLength,ResponsiblePerson,BuildYear,Device,Norm,NominalPressure, Reference,NominalTime,NominalSedation,Weather,PipeLength,WaterProtectionZone,Volume,SurfaceArea,ReportNo, Comment1,Comment2,JobNo; END -CREATE PROCEDURE UpdatePressureInsp (StructureID integer, ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40)) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear WHERE StructureID=:StructureID; IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID, SewerTypeID=:SewerTypeID, MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID, ProfileHeight=:ProfileHeight, ProfileWidth=:ProfileWidth,ReachLength=:ReachLength, /*VideoTape=:VideoTape, SectionNo=:SectionNo, */ PipeLength=:PipeLength,WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; IF ((:StartManhole IS NOT NULL) AND (:StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:EndManhole IS NOT NULL) AND (:EndManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:EndManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE Reach SET UpperManholeID=:UpperManholeID, LowerManholeID=:LowerManholeID WHERE StructureID=:StructureID; END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN /*UPDATE Separator(StructureID) VALUES (:StructureID);*/ END SELECT PressureTestDataID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureTestDataID; UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime,NominalSedation=:NominalSedation, Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; UPDATE PressureInspection SET FlowDirectionID=:FlowDirectionID, OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent,Weather=:Weather,Device=:Device,ModeID=:ModeID,Norm=:Norm, ResponsiblePerson=:ResponsiblePerson, Flag=NULL, Comment1=:Comment1,Comment2=:Comment2,JobNo=:JobNo,InspectedTubeLength=:InspectedTubeLength WHERE StructureID=:StructureID; END FCREATE PROCEDURE AddPressureInsp(ModeID integer,Number varchar(40),StartManhole varchar(40),EndManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3), ReportNo integer,Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40)) RETURNS (PressureInspectionID integer,StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN PressureInspectionID = GEN_ID(PressureInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:StructureID); UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear WHERE StructureID=:StructureID; END ELSE BEGIN StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number,CodeDigit,InspDate,Street,StreetCode,ZIP,City,BuildYear,ReportNo) VALUES (:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:ZIP,:City,:BuildYear,:ReportNo); END IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN INSERT INTO PipeStructure(StructureID, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,/*VideoTape, SectionNo,*/PipeLength,WaterProtectionZone) VALUES (:StructureID, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,/*:VideoTape, :SectionNo,*/:PipeLength,:WaterProtectionZone); IF ((:StartManhole IS NOT NULL) AND (:StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:EndManhole IS NOT NULL) AND (:EndManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:EndManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN INSERT INTO Separator(StructureID) VALUES (:StructureID); END PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); INSERT INTO PressureInspection(PressureInspectionID,StructureID,FlowDirectionID, OrdererPresent,ContractorPresent,Weather,Device,ModeID,Norm,ResponsiblePerson, Flag,Comment1,Comment2,JobNo,PressureTestDataID,InspectedTubeLength) VALUES (:PressureInspectionID,:StructureID,:FlowDirectionID, :OrdererPresent,:ContractorPresent,:Weather,:Device,:ModeID,:Norm,:ResponsiblePerson, NULL,:Comment1,:Comment2,:JobNo,:PressureTestDataID,:InspectedTubeLength); END XCREATE PROCEDURE AddPressureTest(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time,Volume decimal(6,3),SurfaceArea decimal(6,3)) RETURNS (EventID integer) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN EventID = GEN_ID(Event_gen,1); INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO PressureTest(EventID,PressureInspectionID,DamageText,Comment,BalloonPressure, P1Start,P1End,P1Hermetic,AddedWater,RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd) VALUES (:EventID,:PressureInspectionID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End, :P1Hermetic,:Added,:RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd); IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; INSERT INTO JointPressureTest(EventID,JointNo,DamageID,PathLength,InternalPathLength) VALUES (:EventID,:JointNo,:DamageID,:PathLength,:InternalPathLength); END IF (NominalPressure > 0) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END END 5CREATE PROCEDURE UpdatePressureTest(EventID integer,PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time,Volume decimal(6,3),SurfaceArea decimal(6,3)) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN UPDATE PressureTest SET PressureInspectionID=:PressureInspectionID,DamageText=:DamageText, Comment=:Comment,BalloonPressure=:BalloonPressure,P1Start=:P1Start,P1End=:P1End,P1Hermetic=:P1Hermetic, AddedWater=:Added,RealSedation=:RealSedation,StartTime=:StartTime,EndTime=:EndTime,P1TimeStart=:P1TimeStart, P1TimeEnd=:P1TimeEnd WHERE EventID=:EventID; IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; UPDATE JointPressureTest SET JointNo=:JointNo,DamageID=:DamageID,PathLength=:PathLength, InternalPathLength=:InternalPathLength WHERE EventID=:EventID; END SELECT PressureTestDataID FROM JointPressureTest WHERE EventID=:EventID INTO :PressureTestDataID; IF (NominalPressure = 0) THEN BEGIN DELETE FROM PressureTestData WHERE PressureTestDataID = :PressureTestDataID; UPDATE JointPressureTest SET PressureTestDataID = NULL; END ELSE BEGIN IF (:PressureTestDataID IS NULL) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END ELSE BEGIN UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime, NominalSedation=:NominalSedation,Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; END END END <CREATE PROCEDURE GetPressureTestByID(EventID integer) RETURNS(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time,Volume decimal(6,3),SurfaceArea decimal(6,3)) AS BEGIN SELECT PressureInspectionID,DamageID,DamageText,Comment,BalloonPressure,P1Start,P1End,P1Hermetic,AddedWater, RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd,JointNo,PathLength,InternalPathLength, NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea FROM PressureTest PT LEFT OUTER JOIN JointPressureTest JPT ON PT.EventID=JPT.EventID LEFT OUTER JOIN PressureTestData PTD ON JPT.PressureTestDataID=PTD.PressureTestDataID WHERE PT.EventID=:EventID INTO :PressureInspectionID,:DamageID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End,:P1Hermetic,:Added, :RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd,:JointNo,:PathLength,:InternalPathLength, :NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea; END  CREATE VIEW JointPressInspsFull (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, PressureInspectionID, Mode, FlowDirectionID, FlowDirection, OrdererPresent, ContractorPresent, ResponsiblePerson, Weather, Device, Norm, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea, Flag, Comment1, Comment2) AS SELECT S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, I.PressureInspectionID, MD.Code AS Mode, I.FlowDirectionID, FD.Code AS FlowDirection, I.OrdererPresent, I.ContractorPresent, I.ResponsiblePerson, I.Weather, I.Device, I.Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, PTD.Volume, PTD.SurfaceArea, I.Flag, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN PressureInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PressureTestData PTD ON PTD.PressureTestDataID=I.PressureTestDataID LEFT OUTER JOIN Abbrs IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Abbrs ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Abbrs MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Abbrs PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Abbrs MD ON I.ModeID = MD.AbbrID LEFT OUTER JOIN Abbrs FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE MD.Code IN ('MW', 'ML') 8ALTER TABLE Structure ADD GroundWaterLevel varchar(100) =ALTER TABLE PressureInspection ADD TypeOfSealing varchar(30) COMMIT e--ALTER PROCEDURE GetPressureInspByID(StructureID integer) INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') N--RECREATE VIEW JointPressInspsFull INSERT INTO Debuglog(msg) VALUES ('Ping') ALTER PROCEDURE AddPressureTest(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time, Volume decimal(6,3),SurfaceArea decimal(6,3),VideoCounter time) RETURNS (EventID integer) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN EventID = GEN_ID(Event_gen,1); INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO PressureTest(EventID,PressureInspectionID,DamageText,Comment,BalloonPressure, P1Start,P1End,P1Hermetic,AddedWater,RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd) VALUES (:EventID,:PressureInspectionID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End, :P1Hermetic,:Added,:RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd); IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; INSERT INTO JointPressureTest(EventID,JointNo,DamageID,PathLength,InternalPathLength,VideoCounter) VALUES (:EventID,:JointNo,:DamageID,:PathLength,:InternalPathLength,:VideoCounter); END IF (NominalPressure > 0) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END END cALTER PROCEDURE UpdatePressureTest(EventID integer,PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time, Volume decimal(6,3),SurfaceArea decimal(6,3),VideoCounter time) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN UPDATE PressureTest SET PressureInspectionID=:PressureInspectionID,DamageText=:DamageText, Comment=:Comment,BalloonPressure=:BalloonPressure,P1Start=:P1Start,P1End=:P1End,P1Hermetic=:P1Hermetic, AddedWater=:Added,RealSedation=:RealSedation,StartTime=:StartTime,EndTime=:EndTime,P1TimeStart=:P1TimeStart, P1TimeEnd=:P1TimeEnd WHERE EventID=:EventID; IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; UPDATE JointPressureTest SET JointNo=:JointNo,DamageID=:DamageID,PathLength=:PathLength, InternalPathLength=:InternalPathLength,VideoCounter=:VideoCounter WHERE EventID=:EventID; END SELECT PressureTestDataID FROM JointPressureTest WHERE EventID=:EventID INTO :PressureTestDataID; IF (NominalPressure = 0) THEN BEGIN DELETE FROM PressureTestData WHERE PressureTestDataID = :PressureTestDataID; UPDATE JointPressureTest SET PressureTestDataID = NULL; END ELSE BEGIN IF (:PressureTestDataID IS NULL) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END ELSE BEGIN UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime, NominalSedation=:NominalSedation,Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; END END END mALTER PROCEDURE GetPressureTestByID(EventID integer) RETURNS(PressureInspectionID integer,DamageID integer,DamageText varchar(200), Comment varchar(200),BalloonPressure decimal(6,2),P1Start decimal(6,2),P1End decimal(6,2),P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength decimal(6,2),InternalPathLength decimal(6,2), NominalPressure decimal(6,2),Reference decimal(6,2),NominalTime time,NominalSedation time, Volume decimal(6,3),SurfaceArea decimal(6,3),VideoCounter time) AS BEGIN SELECT PressureInspectionID,DamageID,DamageText,Comment,BalloonPressure,P1Start,P1End,P1Hermetic,AddedWater, RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd,JointNo,PathLength,InternalPathLength, NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea, VideoCounter FROM PressureTest PT LEFT OUTER JOIN JointPressureTest JPT ON PT.EventID=JPT.EventID LEFT OUTER JOIN PressureTestData PTD ON JPT.PressureTestDataID=PTD.PressureTestDataID WHERE PT.EventID=:EventID INTO :PressureInspectionID,:DamageID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End,:P1Hermetic,:Added, :RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd,:JointNo,:PathLength,:InternalPathLength, :NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea,:VideoCounter; END /*Patch for lack of On delete cascade in PTHC*/ CREATE TRIGGER BEFORE_DELETE_PRESSURETEST FOR PressureTest ACTIVE BEFORE DELETE POSITION 0 AS BEGIN DELETE FROM PressureTestedHouseConnection WHERE JointPressureTestID = OLD.EventID; END CREATE TABLE GPSData( GPSDataID integer NOT NULL PRIMARY KEY, StructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE, Timepoint timestamp, Northing decimal(11,3), Easting decimal(11,3), Elevation decimal(11,3), DataTime time) CREATE GENERATOR GPSData_gen COMMIT *INSERT INTO PictureFormat VALUES(3,'BMP') *INSERT INTO PictureFormat VALUES(4,'PNG') lALTER PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS BEGIN SELECT (SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID) || ' _reaches ( '|| (SELECT sum(InspectionLength) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID)|| ' _connections ( '|| (SELECT sum(InspectionLength) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM InclMeasurement)||' _inclinationMeasurements' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM ScanCamInspection)||' _ScanCamInspections' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') 9ALTER TABLE PressureInspection ADD VideoTape varchar(10) COMMIT P--ALTER PROCEDURE GetPressureInspByID INSERT INTO Debuglog(msg) VALUES ('Ping') O--ALTER PROCEDURE UpdatePressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') L--ALTER PROCEDURE AddPressureInsp INSERT INTO Debuglog(msg) VALUES ('Ping') q RECREATE VIEW JointPressInspsFull (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, PressureInspectionID, Mode, FlowDirectionID, FlowDirection, OrdererPresent, ContractorPresent, ResponsiblePerson, TypeOfSealing, Weather, Device, Norm, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea, Flag, Comment1, Comment2,GroundWaterLevel,VideoTape) AS SELECT S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, I.PressureInspectionID, MD.Code AS Mode, I.FlowDirectionID, FD.Code AS FlowDirection, I.OrdererPresent, I.ContractorPresent, I.ResponsiblePerson,I.TypeOfSealing, I.Weather, I.Device, I.Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, PTD.Volume, PTD.SurfaceArea, I.Flag, I.Comment1, I.Comment2,S.GroundWaterLevel,I.VideoTape FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN PressureInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PressureTestData PTD ON PTD.PressureTestDataID=I.PressureTestDataID LEFT OUTER JOIN Abbrs IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Abbrs ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Abbrs MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Abbrs PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Abbrs MD ON I.ModeID = MD.AbbrID LEFT OUTER JOIN Abbrs FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE MD.Code IN ('MW', 'ML') @ALTER TABLE Event ADD AdditionalCodeID integer REFERENCES Abbr; COMMIT ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer,CodeID integer,Code varchar(10),Comment varchar(80),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2), PathLength decimal(6,2),Measure1 decimal(10,3),Unit1 varchar(10),Measure2 decimal(10,3), Unit2 varchar(10),VideoCounter time,RouteDamageID integer,PictureCnt integer,ChildStructureID integer,AdditionalCodeID integer) AS BEGIN SELECT StructureID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,U1.Name,Measure2,U2.Name,E.VideoCounter,RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID=:EventID) AS PictureCnt,ChildStructureID,AdditionalCodeID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID=:EventID INTO :StructureID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1,:Measure2,:Unit2,:VideoCounter,:RouteDamageID,:PictureCnt, :ChildStructureID,:AdditionalCodeID; END ALTER PROCEDURE UpdateEvent(EventID integer,StructureID integer,CodeID integer, Comment varchar(80),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2), PathLength decimal(6,2),Measure1 decimal(10,3),Unit1 varchar(10),Measure2 decimal(10,3), Unit2 varchar(10),VideoCounter time,RouteDamageID integer,RouteDamage varchar(10),ChildStructureID integer,AdditionalCodeID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); UPDATE Event SET CodeID=:CodeID,Comment=:Comment,Class=:Class, Joint=:Joint,PositionFrom=:PositionFrom,PositionTo=:PositionTo,JointAngle=:JointAngle,Mode=:Mode, InternalPathLength=:InternalPathLength,PathLength=:PathLength,Measure1=:Measure1, Unit1ID=:Unit1ID,Measure2=:Measure2,Unit2ID=:Unit2ID,VideoCounter=:VideoCounter,RouteDamageID=:RouteDamageID, ChildStructureID=:ChildStructureID,AdditionalCodeID=:AdditionalCodeID WHERE EventID=:EventID; EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END nALTER PROCEDURE AddEvent(StructureID integer,CodeID integer,Code varchar(10),Comment varchar(80),Class char(1),Joint smallint, PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2),PathLength decimal(6,2), Measure1 decimal(10,3),Unit1ID integer,Unit1 varchar(10),Measure2 decimal(10,3),Unit2ID integer,Unit2 varchar(10),VideoCounter time, RouteDamageID integer,RouteDamage varchar(10),AdditionalCodeID integer) RETURNS (EventID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN EventID = GEN_ID(Event_gen,1); SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; END IF ((CodeID IS NULL) OR (CodeID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END IF ((Unit1ID IS NULL) OR (Unit1ID = 0)) THEN BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); END IF ((Unit2ID IS NULL) OR (Unit2ID = 0)) THEN BEGIN EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); END IF ((RouteDamageID IS NULL) OR (RouteDamageID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage,'T') RETURNING_VALUES (:RouteDamageID); END INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO Event(EventID,TVInspectionID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,Unit1ID,Measure2,Unit2ID,VideoCounter,RouteDamageID,AdditionalCodeID) VALUES(:EventID,:TVInspectionID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1ID,:Measure2,:Unit2ID,:VideoCounter,:RouteDamageID,:AdditionalCodeID); EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END ALTER PROCEDURE UpdatePipeStructure(StructureID integer,TVInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength,WallThickness=:WallThickness, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE TVInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,FlowControlID=:FlowControlID,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,ResponsiblePersonCertificateNo=:ResponsiblePersonCertificateNo, LocationDetails=:LocationDetails,RenovationYear=:RenovationYear,SewerCategory=:SewerCategory, PreCleaningID=:PreCleaningID,DrainageArea=:DrainageArea,InspPurposeID=:InspPurposeID,Comment1=:Comment1,Comment2=:Comment2 WHERE TVInspectionID=:TVInspectionID; END J--ALTER PROCEDURE UpdateManhole INSERT INTO Debuglog(msg) VALUES ('Ping') kALTER PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END eALTER PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(:InspectionMode,'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END +ALTER PROCEDURE AddReach (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer,TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES(:TVInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WallThickness, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo,:LocationDetails, :FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea,:InspPurposeID,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END OINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddHouseConnection GINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddManhole  ALTER PROCEDURE AddPANCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN EXECUTE PROCEDURE AddReach(Number,CodeDigit,InspDate,Street,StreetCode, Zip,City,BuildYear,ReportNo, GroundWaterLevel, UpperManhole, LowerManhole,FlowDirectionID,InspectionModeID,InspectionMode, OrdererPresent,ContractorPresent,InnerProtectionID,SewerTypeID, MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth, ReachLength,Judgement,Timepoint,PictureQuality, VideoCounter,VideoTape,SectionNo,ResponsiblePerson, SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo, CityMapPageNo,StreetSurface,WeatherID,Weather,SewerNo,Scale, PipeLength,0,WaterProtectionZone,PositionInStreetID, PositionInStreet,SewerageDistrict,EndOfGuarantee,EndOfGuaranteeDate, CleaningDate,Queue,TypeOfSealing,Flag, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, InspPurposeID,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) RETURNING_VALUES (StructureID,TVInspectionID); INSERT INTO PANCamInspection(TVInspectionID) VALUES (:TVInspectionID); END 6ALTER PROCEDURE AddInclMeasurement (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); InclMeasurementID = GEN_ID(InclMeasurement_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO InclMeasurement(InclMeasurementID,StructureID) VALUES(:InclMeasurementID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END DALTER PROCEDURE AddScanCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END nALTER PROCEDURE UpdateReach (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WallThickness,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID, :DrainageArea,:InspPurposeID,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END RINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE UpdateHouseConnection ^ALTER PROCEDURE UpdateInclMeasurement (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:StructureID INTO :InclMeasurementID; EXECUTE PROCEDURE UpdatePipeStructureIncl(:StructureID,:InclMeasurementID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END hALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END ^INSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetReachByID(StructureID integer) SINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetHouseConnectionByID K--ALTER PROCEDURE GetManholeByID INSERT INTO Debuglog(msg) VALUES ('Ping') ALTER PROCEDURE GetPANCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,ResponsiblePersonCertificateNo,LocationDetails, FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, InspPurposeID,Comment1,Comment2,StartMeter,EndMeter,RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID INNER JOIN PANCamInspection PCI ON TV.TVInspectionID=PCI.TVInspectionID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet, :SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo, :LocationDetails,:FlowControlID,RenovationYear,SewerCategory,PreCleaningID,DrainageArea, :InspPurposeID,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END ]ALTER TABLE Event ADD ManholePartID integer REFERENCES Abbr, ADD ManholePart varchar(50); COMMIT ;ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer,CodeID integer,Code varchar(10),Comment varchar(80),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength decimal(6,2), PathLength decimal(6,2),Measure1 decimal(10,3),Unit1 varchar(10),Measure2 decimal(10,3), Unit2 varchar(10),VideoCounter time,RouteDamageID integer,PictureCnt integer,ChildStructureID integer,AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(50)) AS BEGIN SELECT StructureID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,U1.Name,Measure2,U2.Name,E.VideoCounter,RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID=:EventID) AS PictureCnt,ChildStructureID,AdditionalCodeID, ManholePartID, ManholePart FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID=:EventID INTO :StructureID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1,:Measure2,:Unit2,:VideoCounter,:RouteDamageID,:PictureCnt, :ChildStructureID,:AdditionalCodeID, :ManholePartID, :ManholePart; END CREATE TABLE KampacEvent( EventID integer NOT NULL PRIMARY KEY REFERENCES Event ON DELETE CASCADE, PressureInspectionID integer REFERENCES PressureInspection ON DELETE CASCADE ) @ INSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer,Number varchar(40),UpperManhole varchar(40),LowerManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40),GroundWaterLevel varchar(100)) AS BEGIN SELECT ModeID,S.Number,UM.Number,LM.Number,S.Street,OrdererPresent,ContractorPresent, S.StreetCode,S.City,S.InspDate,S.ZIP,S.CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,InspectedTubeLength,PI.VideoTape,ResponsiblePerson,S.BuildYear,Device,Norm, PTD.NominalPressure,PTD.Reference,PTD.NominalTestTime,PTD.NominalSedation,TypeOfSealing,Weather,PipeLength, WaterProtectionZone,PTD.Volume,PTD.SurfaceArea,S.ReportNo, Comment1,Comment2,JobNo,S.GroundWaterLevel FROM Structure S INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID,:Number,:UpperManhole,:LowerManhole,:Street,OrdererPresent,ContractorPresent, StreetCode,City,InspDate,ZIP,CodeDigit,FlowDirectionID,SewerTypeID,InnerProtectionID,MaterialID,ProfileTypeID, ProfileHeight,ProfileWidth,ReachLength,InspectedTubeLength,VideoTape,ResponsiblePerson,BuildYear,Device,Norm,NominalPressure, Reference,NominalTime,NominalSedation,TypeOfSealing,Weather,PipeLength,WaterProtectionZone,Volume,SurfaceArea,ReportNo, Comment1,Comment2,JobNo,GroundWaterLevel; END*/ INSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE UpdatePressureInsp (StructureID integer, ModeID integer,Number varchar(40),UpperManhole varchar(40),LowerManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40),GroundWaterLevel varchar(100)) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear,GroundWaterLevel=:GroundWaterLevel WHERE StructureID=:StructureID; IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN BEGIN UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID, SewerTypeID=:SewerTypeID, MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID, ProfileHeight=:ProfileHeight, ProfileWidth=:ProfileWidth,ReachLength=:ReachLength, PipeLength=:PipeLength,WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE Reach SET UpperManholeID=:UpperManholeID, LowerManholeID=:LowerManholeID WHERE StructureID=:StructureID; END ELSE IF (ModeCode LIKE 'A') THEN BEGIN END SELECT PressureTestDataID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureTestDataID; UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime,NominalSedation=:NominalSedation, Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; UPDATE PressureInspection SET FlowDirectionID=:FlowDirectionID, OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent,TypeOfSealing=:TypeOfSealing, Weather=:Weather,Device=:Device,ModeID=:ModeID,Norm=:Norm, ResponsiblePerson=:ResponsiblePerson, Flag=NULL, Comment1=:Comment1,Comment2=:Comment2,JobNo=:JobNo,InspectedTubeLength=:InspectedTubeLength,VideoTape=:VideoTape WHERE StructureID=:StructureID; END*/ [INSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE AddPressureInsp(ModeID integer,Number varchar(40),UpperManhole varchar(40),LowerManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3), ReportNo integer,Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40),GroundWaterLevel varchar(100)) RETURNS (PressureInspectionID integer,StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN PressureInspectionID = GEN_ID(PressureInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF (ModeCode LIKE 'S%') THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:StructureID); UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear WHERE StructureID=:StructureID; END ELSE BEGIN StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number,CodeDigit,InspDate,Street,StreetCode,ZIP,City,BuildYear,ReportNo,GroundWaterLevel) VALUES (:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:ZIP,:City,:BuildYear,:ReportNo,:GroundWaterLevel); END IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN BEGIN INSERT INTO PipeStructure(StructureID, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,PipeLength,WaterProtectionZone) VALUES (:StructureID, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:PipeLength,:WaterProtectionZone); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A') THEN BEGIN INSERT INTO Separator(StructureID) VALUES (:StructureID); END PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); INSERT INTO PressureInspection(PressureInspectionID,StructureID,FlowDirectionID, OrdererPresent,ContractorPresent,TypeOfSealing,Weather,Device,ModeID,Norm,ResponsiblePerson, Flag,Comment1,Comment2,JobNo,PressureTestDataID,InspectedTubeLength,VideoTape) VALUES (:PressureInspectionID,:StructureID,:FlowDirectionID, :OrdererPresent,:ContractorPresent,:TypeOfSealing,:Weather,:Device,:ModeID,:Norm,:ResponsiblePerson, NULL,:Comment1,:Comment2,:JobNo,:PressureTestDataID,:InspectedTubeLength,:VideoTape); END*/ L--UPDATE PROCEDURE UpdateCustomer INSERT INTO Debuglog(msg) VALUES ('Ping') J--ALTER PROCEDURE UpdateProject INSERT INTO Debuglog(msg) VALUES ('Ping') K--ALTER PROCEDURE UpdateCustomer INSERT INTO Debuglog(msg) VALUES ('Ping') ALTER PROCEDURE UpdateCustomer ( ID integer, Name varchar(40), Street varchar(40), Zip varchar(10), City varchar(40), Land varchar(20), Tel varchar(30), Fax varchar(30), ExtraInfo varchar(1000) ) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :ID; END UPDATE Customer SET Name=:Name,Street=:Street,Zip=:Zip,City=:City, Land=:Land,Tel=:Tel,Fax=:Fax,ExtraInfo=:ExtraInfo WHERE CustomerID = :ID; END J--ALTER PROCEDURE UpdateProject INSERT INTO Debuglog(msg) VALUES ('Ping') J--ALTER PROCEDURE UpdateProject INSERT INTO Debuglog(msg) VALUES ('Ping') *ALTER PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END UPDATE Project SET Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID WHERE ProjectID=:ID; IF ((CustomerID IS NOT NULL) AND (CustomerID > 0)) THEN BEGIN UPDATE PROJECT SET CustomerID=:CustomerID WHERE ProjectID=:ID; END END FALTER PROCEDURE UpdatePipeStructure(StructureID integer,TVInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength,WallThickness=:WallThickness, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE TVInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,FlowControlID=:FlowControlID,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,ResponsiblePersonCertificateNo=:ResponsiblePersonCertificateNo, LocationDetails=:LocationDetails,RenovationYear=:RenovationYear,SewerCategory=:SewerCategory, PreCleaningID=:PreCleaningID,DrainageArea=:DrainageArea,InspPurposeID=:InspPurposeID,Comment1=:Comment1,Comment2=:Comment2 WHERE TVInspectionID=:TVInspectionID; END ALTER PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END ALTER PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') nEXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'GPSDATA')) THEN EXECUTE STATEMENT 'CREATE TABLE GPSData(GPSDataID integer NOT NULL PRIMARY KEY,StructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE,Timepoint timestamp,Northing decimal(11,3),Easting decimal(11,3),Elevation decimal(11,3),DataTime time)'; END COMMIT *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') *INSERT INTO Debuglog(msg) VALUES ('Ping') 4ALTER TABLE ManholeConnection ADD Descr varchar(40) COMMIT ALTER PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer,TypeID integer,TypeText varchar(256),Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer,Descr varchar(40)) AS BEGIN SELECT StructureID,TypeID,ATX.FullText,Dim,Height,MaterialID,ConnPosition,Comment,Coord,ChildStructureID,Descr FROM ManholeConnection LEFT OUTER JOIN AbbrText ATX ON TypeID=ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 WHERE ManholeConnectionID=:ManholeConnectionID INTO :StructureID,:TypeID,:TypeText,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord,:ChildStructureID,:Descr; END QINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE AddManholeConnection GALTER PROCEDURE UpdateManholeConnection(ManholeConnectionID integer,StructureID integer, TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer,Descr varchar(40)) AS DECLARE VARIABLE ChildStrExists smallint; BEGIN IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; SELECT count(*) FROM Structure WHERE StructureID=:ChildStructureID INTO ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END UPDATE ManholeConnection SET StructureID=:StructureID,TypeID=:TypeID,Dim=:Dim,Height=:Height, MaterialID=:MaterialID,ConnPosition=:ConnPosition,Comment=:Comment,Coord=:Coord,ChildStructureID=:ChildStructureID, Descr=:Descr WHERE ManholeConnectionID=:ManholeConnectionID; END ALTER PROCEDURE AddManholeConnection(StructureID integer,TypeID integer,Dim decimal(7,3),Height decimal(7,3), MaterialID integer,ConnPosition smallint,Comment varchar(40),Coord varchar(10),ChildStructureID integer,Descr varchar(40)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen,1); IF (TypeID = 0) THEN TypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; SELECT count(*) FROM Structure WHERE StructureID=:ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END INSERT INTO ManholeConnection(ManholeConnectionID,StructureID,TypeID,Dim,Height,MaterialID, ConnPosition,Comment,Coord,ChildStructureID,Descr) VALUES(:ManholeConnectionID,:StructureID,:TypeID,:Dim,:Height,:MaterialID,:ConnPosition,:Comment,:Coord,:ChildStructureID,:Descr); END RINSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE GetPressureInspByID*/ QINSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE UpdatePressureInsp*/ NINSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE AddPressureInsp*/ (CREATE GENERATOR ReportNo_Universal_gen *SET GENERATOR ReportNo_Universal_gen TO 1 ALTER TABLE Manhole ADD CoverMaterialID integer REFERENCES Abbr, ADD DescendingHelpMaterial varchar(100), ADD DescendingHelpCount integer COMMIT KINSERT INTO DebugLog(msg) VALUES ('ping') --ALTER PROCEDURE GetManholeByID J--ALTER PROCEDURE UpdateManhole INSERT INTO DebugLog(msg) VALUES ('ping') G--ALTER PROCEDURE AddManhole INSERT INTO DebugLog(msg) VALUES ('ping') JINSERT INTO DebugLog(msg) VALUES ('ping') --ALTER PROCEDURE UpdateManhole GINSERT INTO DebugLog(msg) VALUES ('ping') --ALTER PROCEDURE AddManhole CREATE TABLE DynamicField( DynamicFieldID integer NOT NULL PRIMARY KEY, AbbrClassID integer REFERENCES AbbrClass, FieldName varchar(100), FieldNameLng varchar(100) ) bCREATE TABLE ManholeField( DynamicFieldID integer NOT NULL PRIMARY KEY REFERENCES DynamicField ) `CREATE TABLE ReachField( DynamicFieldID integer NOT NULL PRIMARY KEY REFERENCES DynamicField ) jCREATE TABLE HouseConnectionField( DynamicFieldID integer NOT NULL PRIMARY KEY REFERENCES DynamicField ) ^CREATE TABLE DynamicFieldValue( DynamicFieldID integer NOT NULL REFERENCES DynamicField ON DELETE CASCADE, StructureID integer NOT NULL REFERENCES Structure ON DELETE CASCADE, ValueID integer REFERENCES Abbr ON DELETE SET NULL, StringValue varchar(200), NumericValue float, DateTimeValue timestamp, PRIMARY KEY (DynamicFieldID, StructureID) ) #CREATE GENERATOR DynamicField_gen; 5ALTER TABLE Manhole ADD PositionInStreet varchar(40) `INSERT INTO DebugLog(msg) VALUES ('ping') --ALTER PROCEDURE GetManholeByID(StructureID integer) ALTER PROCEDURE UpdateManhole(StructureID integer,Number varchar(40),CodeDigit varchar(256), InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint,CoverMaterialID integer,DescendingHelpMaterial varchar(100), DescendingHelpCount integer,PositionInStreet varchar(40),VideoTape varchar(10), Weather varchar(20), ParentEventID integer,ParentStructureID integer) AS BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; IF (CoverMaterialID = 0) THEN CoverMaterialID = NULL; UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson=:ResponsiblePerson,VideoTape=:VideoTape,Weather=:Weather,Judgement=:StateTotal WHERE StructureID=:StructureID; UPDATE Manhole SET ManholeFormID=:ManholeFormID, CoordX=:CoordX,CoordY=:CoordY,CoordExactID=:CoordExactID, CoverHeight=:CoverHeight,CoverExactID=:CoverExactID,BottomHeight=:BottomHeight,BottomExactID=:BottomExactID, StatusID=:StatusID,FlumeShapeID=:FlumeShapeID,DefinitionClassID=:DefinitionClassID, CoverDN=:CoverDN,CoverWidth=:CoverWidth,CoverShapeID=:CoverShapeID,ManhShapeID=:ManhShapeID,ManhDN=:ManhDN, ManhWidth=:ManhWidth,TaperShaftRing=:TaperShaftRing,ManhLowerShapeID=:ManhLowerShapeID,ManhLowerDN=:ManhLowerDN, ManhLowerWidth=:ManhLowerWidth,ManhLowerHeight=:ManhLowerHeight,NeckMaterialID=:NeckMaterialID, UpperPartMaterialID=:UpperPartMaterialID,LowerPartMaterialID=:LowerPartMaterialID,FlumeMaterialID=:FlumeMaterialID, InternalProtectionID=:InternalProtectionID,ManholeStepID=:ManholeStepID, DescendingHelp=:DescendingHelp,ShaftRing=:ShaftRing,CoverPlate=:CoverPlate,CoverMaterialID=:CoverMaterialID, DescendingHelpMaterial=:DescendingHelpMaterial,DescendingHelpCount=:DescendingHelpCount,PositionInStreet=:PositionInStreet WHERE StructureID=:StructureID; DELETE FROM LStructureStructure WHERE StructureID=:StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructureID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; END END ALTER PROCEDURE AddManhole(Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), ManholeFormID integer,ResponsiblePerson varchar(30),StateTotal varchar(30), CoordX decimal(11,3),CoordY decimal(11,3),CoordExactID integer,CoverHeight decimal(8,3),CoverExactID integer, BottomHeight decimal(8,3),BottomExactID integer,StatusID integer,FlumeShapeID integer,DefinitionClassID integer, CoverDN decimal(5,2),CoverWidth decimal(5,2),CoverShapeID integer,ManhShapeID integer,ManhDN decimal(5,2), ManhWidth decimal(5,2),TaperShaftRing smallint,ManhLowerShapeID integer,ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2),ManhLowerHeight decimal(5,2),NeckMaterialID integer,UpperPartMaterialID integer, LowerPartMaterialID integer,FlumeMaterialID integer,InternalProtectionID integer,ManholeStepID integer, DescendingHelp smallint,ShaftRing smallint,CoverPlate smallint,CoverMaterialID integer,DescendingHelpMaterial varchar(100), DescendingHelpCount integer,PositionInStreet varchar(40),VideoTape varchar(10), Weather varchar(20), ParentEventID integer,ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ManholeFormID = 0) THEN ManholeFormID = NULL; IF (CoordExactID = 0) THEN CoordExactID = NULL; IF (CoverExactID = 0) THEN CoverExactID = NULL; IF (BottomExactID = 0) THEN BottomExactID = NULL; IF (StatusID = 0) THEN StatusID = NULL; IF (FlumeShapeID = 0) THEN FlumeShapeID = NULL; IF (DefinitionClassID = 0) THEN DefinitionClassID = NULL; IF (CoverShapeID = 0) THEN CoverShapeID = NULL; IF (ManhShapeID = 0) THEN ManhShapeID = NULL; IF (ManhLowerShapeID = 0) THEN ManhLowerShapeID = NULL; IF (NeckMaterialID = 0) THEN NeckMaterialID = NULL; IF (UpperPartMaterialID = 0) THEN UpperPartMaterialID = NULL; IF (LowerPartMaterialID = 0) THEN LowerPartMaterialID = NULL; IF (FlumeMaterialID = 0) THEN FlumeMaterialID = NULL; IF (InternalProtectionID = 0) THEN InternalProtectionID = NULL; IF (ManholeStepID = 0) THEN ManholeStepID = NULL; EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen,1); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID,:StructureID); EXECUTE PROCEDURE UpdateManhole(:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :ManholeFormID,:ResponsiblePerson,:StateTotal,:CoordX,:CoordY,:CoordExactID, :CoverHeight,:CoverExactID,:BottomHeight,:BottomExactID,:StatusID,:FlumeShapeID,:DefinitionClassID, :CoverDN,:CoverWidth,:CoverShapeID,:ManhShapeID,:ManhDN,:ManhWidth,:TaperShaftRing,:ManhLowerShapeID,:ManhLowerDN, :ManhLowerWidth,:ManhLowerHeight,:NeckMaterialID,:UpperPartMaterialID,:LowerPartMaterialID,:FlumeMaterialID, :InternalProtectionID,:ManholeStepID,:DescendingHelp,:ShaftRing,:CoverPlate,:CoverMaterialID,:DescendingHelpMaterial, :DescendingHelpCount,:PositionInStreet,:VideoTape,:Weather,:ParentEventID,:ParentStructureID); DELETE FROM LStructureStructure WHERE StructureID=:StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructureID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; END END 5ALTER TABLE Project ADD DefaultExporter varchar(100) COMMIT ALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100) ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter); END ALTER PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer,DefaultExporter varchar(100) ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID, DefaultExporter=:DefaultExporter WHERE ProjectID=:ID; END 0CREATE GENERATOR ReportNo_ManholeStructure_gen; BCREATE TABLE MANHOLESTRUCTURE ( STRUCTUREID INTEGER PRIMARY KEY REFERENCES STRUCTURE (STRUCTUREID) ON DELETE CASCADE, MANHOLEFUNCTIONID INTEGER REFERENCES ABBR (ABBRID), MANHOLEDEPTH DECIMAL(5,2), DESCENDINGHELP SMALLINT, DESCENDINGHELPTYPEID INTEGER REFERENCES ABBR (ABBRID), DESCENDINGHELPMATERIALID INTEGER REFERENCES ABBR (ABBRID), INNERPROTECTIONID INTEGER REFERENCES ABBR (ABBRID), NOOFCONNECTIONS INTEGER, HANDEDOVER SMALLINT, NOOFCOVERS INTEGER, COVERSHAPEID INTEGER REFERENCES ABBR (ABBRID), COVERTYPEID INTEGER REFERENCES ABBR (ABBRID), COVERLENGTHORDN DECIMAL(5,2), COVERWIDTH DECIMAL(5,2), COVERCLASSID INTEGER REFERENCES ABBR (ABBRID), COVERMATERIALID INTEGER REFERENCES ABBR (ABBRID), NOOFDISTANCERINGS INTEGER, DISTANCERINGHEIGHT INTEGER, DIRTTRAP SMALLINT, UPPERSHAPEID INTEGER REFERENCES ABBR (ABBRID), UPPERPLATE SMALLINT, UPPERCONE SMALLINT, UPPERLENGTHORDN DECIMAL(5,2), UPPERWIDTH DECIMAL(5,2), UPPERHEIGHT DECIMAL(5,2), UPPERMATERIALID INTEGER REFERENCES ABBR (ABBRID), LOWERSHAPEID INTEGER REFERENCES ABBR (ABBRID), LOWERPLATE SMALLINT, LOWERCONE SMALLINT, LOWERLENGTHORDN DECIMAL(5,2), LOWERWIDTH DECIMAL(5,2), LOWERHEIGHT DECIMAL(5,2), LOWERMATERIALID INTEGER REFERENCES ABBR (ABBRID), LOWERPLATFORM SMALLINT, BOTTOMSHAPEID INTEGER REFERENCES ABBR (ABBRID), BOTTOMLENGTHORDN DECIMAL(5,2), BOTTOMWIDTH DECIMAL(5,2), BOTTOMHEIGHT DECIMAL(5,2), BOTTOMMATERIALID INTEGER REFERENCES ABBR (ABBRID), FLUMESHAPEID INTEGER REFERENCES ABBR (ABBRID), FLUMEMATERIALID INTEGER REFERENCES ABBR (ABBRID) ) i CREATE PROCEDURE WRITEMANHOLESTRUCTURE ( ID INTEGER, NUMBER VARCHAR(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), MANHOLEFUNCTIONID INTEGER, MANHOLEDEPTH DECIMAL(5,2), DESCENDINGHELP SMALLINT, DESCENDINGHELPTYPEID INTEGER, DESCENDINGHELPMATERIALID INTEGER, INNERPROTECTIONID INTEGER, NOOFCONNECTIONS INTEGER, HANDEDOVER SMALLINT, NOOFCOVERS INTEGER, COVERSHAPEID INTEGER, COVERTYPEID INTEGER, COVERLENGTHORDN DECIMAL(5,2), COVERWIDTH DECIMAL(5,2), COVERCLASSID INTEGER, COVERMATERIALID INTEGER, NOOFDISTANCERINGS INTEGER, DISTANCERINGHEIGHT INTEGER, DIRTTRAP SMALLINT, UPPERSHAPEID INTEGER, UPPERPLATE SMALLINT, UPPERCONE SMALLINT, UPPERLENGTHORDN DECIMAL(5,2), UPPERWIDTH DECIMAL(5,2), UPPERHEIGHT DECIMAL(5,2), UPPERMATERIALID INTEGER, LOWERSHAPEID INTEGER, LOWERPLATE SMALLINT, LOWERCONE SMALLINT, LOWERLENGTHORDN DECIMAL(5,2), LOWERWIDTH DECIMAL(5,2), LOWERHEIGHT DECIMAL(5,2), LOWERMATERIALID INTEGER, LOWERPLATFORM SMALLINT, BOTTOMSHAPEID INTEGER, BOTTOMLENGTHORDN DECIMAL(5,2), BOTTOMWIDTH DECIMAL(5,2), BOTTOMHEIGHT DECIMAL(5,2), BOTTOMMATERIALID INTEGER, FLUMESHAPEID INTEGER, FLUMEMATERIALID INTEGER ) RETURNS (STRUCTUREID INTEGER) AS BEGIN IF (ID <= 0) THEN ID = GEN_ID(STRUCTURE_GEN, 1); STRUCTUREID = ID; UPDATE OR INSERT INTO STRUCTURE (StructureID, Number, CODEDIGIT, INSPDATE, STREET, STREETCODE, ZIP, CITY, BUILDYEAR, REPORTNO, GROUNDWATERLEVEL) VALUES (:ID, :NUMBER, :CODEDIGIT, :INSPDATE, :STREET, :STREETCODE, :ZIP, :CITY, :BUILDYEAR, :REPORTNO, :GROUNDWATERLEVEL); UPDATE OR INSERT INTO MANHOLESTRUCTURE ( STRUCTUREID, MANHOLEFUNCTIONID, MANHOLEDEPTH, DESCENDINGHELP, DESCENDINGHELPTYPEID, DESCENDINGHELPMATERIALID, INNERPROTECTIONID, NOOFCONNECTIONS, HANDEDOVER, NOOFCOVERS, COVERSHAPEID, COVERTYPEID, COVERLENGTHORDN, COVERWIDTH, COVERCLASSID, COVERMATERIALID, NOOFDISTANCERINGS, DISTANCERINGHEIGHT, DIRTTRAP, UPPERSHAPEID, UPPERPLATE, UPPERCONE, UPPERLENGTHORDN, UPPERWIDTH, UPPERHEIGHT, UPPERMATERIALID, LOWERSHAPEID, LOWERPLATE, LOWERCONE, LOWERLENGTHORDN, LOWERWIDTH, LOWERHEIGHT, LOWERMATERIALID, LOWERPLATFORM, BOTTOMSHAPEID, BOTTOMLENGTHORDN, BOTTOMWIDTH, BOTTOMHEIGHT, BOTTOMMATERIALID, FLUMESHAPEID, FLUMEMATERIALID) VALUES ( :ID, :MANHOLEFUNCTIONID, :MANHOLEDEPTH, :DESCENDINGHELP, :DESCENDINGHELPTYPEID, :DESCENDINGHELPMATERIALID, :INNERPROTECTIONID, :NOOFCONNECTIONS, :HANDEDOVER, :NOOFCOVERS, :COVERSHAPEID, :COVERTYPEID, :COVERLENGTHORDN, :COVERWIDTH, :COVERCLASSID, :COVERMATERIALID, :NOOFDISTANCERINGS, :DISTANCERINGHEIGHT, :DIRTTRAP, :UPPERSHAPEID, :UPPERPLATE, :UPPERCONE, :UPPERLENGTHORDN, :UPPERWIDTH, :UPPERHEIGHT, :UPPERMATERIALID, :LOWERSHAPEID, :LOWERPLATE, :LOWERCONE, :LOWERLENGTHORDN, :LOWERWIDTH, :LOWERHEIGHT, :LOWERMATERIALID, :LOWERPLATFORM, :BOTTOMSHAPEID, :BOTTOMLENGTHORDN, :BOTTOMWIDTH, :BOTTOMHEIGHT, :BOTTOMMATERIALID, :FLUMESHAPEID, :FLUMEMATERIALID); END /*Patch for lack of On delete cascade in PTHC*/ RECREATE TRIGGER BEFORE_DELETE_PRESSURETEST FOR JointPressureTest ACTIVE BEFORE DELETE POSITION 0 AS BEGIN DELETE FROM PressureTestedHouseConnection WHERE JointPressureTestID = OLD.EventID; END COMMIT >ALTER TABLE Project ADD ManhInspDirUpwards smallint DEFAULT 1 COMMIT *UPDATE Project SET ManhInspDirUpwards = 1 COMMIT ALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100), ManhInspDirUpwards smallint ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter, ManhInspDirUpwards) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter,:ManhInspDirUpwards); END ALTER PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer,DefaultExporter varchar(100), ManhInspDirUpwards smallint ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID, DefaultExporter=:DefaultExporter,ManhInspDirUpwards=:ManhInspDirUpwards WHERE ProjectID=:ID; END hALTER TABLE Multimedia ADD PressureInspectionID integer REFERENCES PressureInspection ON DELETE CASCADE COMMIT ALTER PROCEDURE AddFilm(StructureID integer,Path varchar(1000),StartTC varchar(10),StopTC varchar(10),MPEGLength integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE PressureInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureInspectionID; INSERT INTO Multimedia(MultimediaID,Path,TVInspectionID,PressureInspectionID) VALUES (:MultimediaID,:Path,:TVInspectionID,:PressureInspectionID); INSERT INTO Film(MultimediaID,StartTC,StopTC,MPEGLength) VALUES (:MultimediaID,:StartTC,:StopTC,:MpegLength); END QINSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE UpdatePressureInsp*/ OALTER TABLE Project ADD UniqueKey varchar(20), ADD SynchronizationDT timestamp COMMIT IALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100), ManhInspDirUpwards smallint, UniqueKey varchar(20) ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter,:ManhInspDirUpwards, :UniqueKey); END 5ALTER TABLE Structure ADD ModificationDate timestamp COMMIT P--DROP TRIGGER AFTER_INSERT_STRUCTURE INSERT INTO Debuglog(msg) VALUES ('Ping') P--DROP TRIGGER AFTER_UPDATE_STRUCTURE INSERT INTO Debuglog(msg) VALUES ('Ping') CREATE TRIGGER AFTER_INSERT_TVInspection FOR TVInspection ACTIVE AFTER INSERT POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = NEW.StructureID; END CREATE TRIGGER AFTER_UPDATE_TVInspection FOR TVInspection ACTIVE AFTER UPDATE POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID=OLD.StructureID; END CREATE TRIGGER AFTER_INSERT_PressureInspection FOR PressureInspection ACTIVE AFTER INSERT POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = NEW.StructureID; END CREATE TRIGGER AFTER_UPDATE_PressureInspection FOR PressureInspection ACTIVE AFTER UPDATE POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID=OLD.StructureID; END CREATE TRIGGER AFTER_INSERT_ScanCamInspection FOR ScanCamInspection ACTIVE AFTER INSERT POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = NEW.StructureID; END CREATE TRIGGER AFTER_UPDATE_ScanCamInspection FOR ScanCamInspection ACTIVE AFTER UPDATE POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID=OLD.StructureID; END CREATE TRIGGER AFTER_INSERT_InclMeasurement FOR InclMeasurement ACTIVE AFTER INSERT POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = NEW.StructureID; END CREATE TRIGGER AFTER_UPDATE_InclMeasurement FOR InclMeasurement ACTIVE AFTER UPDATE POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID=OLD.StructureID; END ^CREATE TRIGGER AFTER_INSERT_Event FOR Event ACTIVE AFTER INSERT POSITION 0 AS BEGIN --TVInspection - not needed! UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = (SELECT StructureID FROM PressureInspection I INNER JOIN KampacEvent KE ON KE.PressureInspectionID=I.PressureInspectionID WHERE KE.EventID = NEW.EventID); END ^CREATE TRIGGER AFTER_UPDATE_Event FOR Event ACTIVE AFTER UPDATE POSITION 0 AS BEGIN --TVInspection - not needed! UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = (SELECT StructureID FROM PressureInspection I INNER JOIN KampacEvent KE ON KE.PressureInspectionID=I.PressureInspectionID WHERE KE.EventID = NEW.EventID); END RALTER TABLE Separator ADD Description varchar(100), ADD Manufacturer varchar(100) <ALTER TABLE HouseConnection ADD ConnectionPoint varchar(40) COMMIT ALTER PROCEDURE UpdatePressureInsp (StructureID integer, ModeID integer,Number varchar(40),UpperManhole varchar(40),LowerManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3),ReportNo integer, Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40),GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100)) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, ReportNo=:ReportNo, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear,GroundWaterLevel=:GroundWaterLevel WHERE StructureID=:StructureID; IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID, SewerTypeID=:SewerTypeID, MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID, ProfileHeight=:ProfileHeight, ProfileWidth=:ProfileWidth,ReachLength=:ReachLength, /*VideoTape=:VideoTape, SectionNo=:SectionNo, */ PipeLength=:PipeLength,WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE Reach SET UpperManholeID=:UpperManholeID, LowerManholeID=:LowerManholeID WHERE StructureID=:StructureID; END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN UPDATE Separator SET Description=:SepDescription, Manufacturer=:SepManufacturer WHERE StructureID=:StructureID; END ELSE IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN UPDATE Manhole SET LOWERPARTMATERIALID=:MaterialID WHERE StructureID=:StructureID; END SELECT PressureTestDataID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureTestDataID; UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime,NominalSedation=:NominalSedation, Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; UPDATE PressureInspection SET FlowDirectionID=:FlowDirectionID, OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent,TypeOfSealing=:TypeOfSealing, Weather=:Weather,Device=:Device,ModeID=:ModeID,Norm=:Norm, ResponsiblePerson=:ResponsiblePerson, Flag=NULL, Comment1=:Comment1,Comment2=:Comment2,JobNo=:JobNo,InspectedTubeLength=:InspectedTubeLength,VideoTape=:VideoTape WHERE StructureID=:StructureID; END ALTER PROCEDURE AddPressureInsp(ModeID integer,Number varchar(40),UpperManhole varchar(40),LowerManhole varchar(40), Street varchar(40),InspectionMode varchar(100),OrdererPresent varchar(100),ContractorPresent varchar(100), StreetCode varchar(25),City varchar(40),InspDate date,ZIP varchar(10),CodeDigit varchar(256), FlowDirectionID integer,SewerTypeID integer,InnerProtectionID integer,MaterialID integer,ProfileTypeID integer, ProfileHeight decimal(6,2),ProfileWidth decimal(6,2),ReachLength decimal(6,2),InspectedTubeLength decimal(6,2),VideoTape varchar(10),ResponsiblePerson varchar(30), SectionNo varchar(10),BuildYear integer,Device varchar(40),Norm varchar(40),NominalPressure decimal(6,2), Reference decimal(6,2),NominalTime time,NominalSedation time,TypeOfSealing varchar(30),Weather varchar(20), PipeLength decimal(6,2),WaterProtectionZone varchar(40),Volume decimal(6,3),SurfaceArea decimal(6,3), ReportNo integer,Comment1 varchar(256),Comment2 varchar(256),JobNo varchar(40),GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100)) RETURNS (PressureInspectionID integer,StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN PressureInspectionID = GEN_ID(PressureInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; /*IF (InspectionModeID = 0) THEN InspectionModeID = NULL;*/ IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:StructureID); UPDATE Structure SET Number=:Number, CodeDigit=:CodeDigit, InspDate=:InspDate, Street=:Street, StreetCode=:StreetCode, ZIP=:ZIP, City=:City, BuildYear=:BuildYear, ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID=:StructureID; UPDATE Manhole SET LOWERPARTMATERIALID=:MaterialID WHERE StructureID=:StructureID; END ELSE BEGIN StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number,CodeDigit,InspDate,Street,StreetCode,ZIP,City,BuildYear,ReportNo,GroundWaterLevel) VALUES (:StructureID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode,:ZIP,:City,:BuildYear,:ReportNo,:GroundWaterLevel); END IF ((ModeCode LIKE 'H%') OR (ModeCode LIKE 'M%')) THEN /*Reach or Connection*/ BEGIN INSERT INTO PipeStructure(StructureID, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,/*VideoTape, SectionNo,*/PipeLength,WaterProtectionZone) VALUES (:StructureID, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,/*:VideoTape, :SectionNo,*/:PipeLength,:WaterProtectionZone); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A') THEN /*Separator*/ BEGIN INSERT INTO Separator(StructureID,Description,Manufacturer) VALUES (:StructureID,:SepDescription,:SepManufacturer); END PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); INSERT INTO PressureInspection(PressureInspectionID,StructureID,FlowDirectionID, OrdererPresent,ContractorPresent,TypeOfSealing,Weather,Device,ModeID,Norm,ResponsiblePerson, Flag,Comment1,Comment2,JobNo,PressureTestDataID,InspectedTubeLength,VideoTape) VALUES (:PressureInspectionID,:StructureID,:FlowDirectionID, :OrdererPresent,:ContractorPresent,:TypeOfSealing,:Weather,:Device,:ModeID,:Norm,:ResponsiblePerson, NULL,:Comment1,:Comment2,:JobNo,:PressureTestDataID,:InspectedTubeLength,:VideoTape); END RINSERT INTO Debuglog(msg) VALUES ('Ping') /*ALTER PROCEDURE GetPressureInspByID*/ ALTER PROCEDURE AddHouseConnection ( Number varchar(40), ReachNumber varchar(30), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartManhole varchar(20), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, ParentManholeConnectionID integer ) RETURNS (StructureID integer) AS DECLARE VARIABLE StartManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID,:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength, :Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo, :MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo, :Scale,:PipeLength,:WallThickness,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength, :ResponsiblePersonCertificateNo,:LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID, :DrainageArea,:InspPurposeID,:Comment1,:Comment2); INSERT INTO HouseConnection(StructureID,RevManhole,ConnectionPoint,StartManholeID,DistanceFromManhole) VALUES (:StructureID,:RevManhole,:ConnectionPoint,:StartManholeID,:DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END IF (ParentStructID IS NOT NULL) THEN BEGIN IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID=A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID=LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID=SAC.SpecialAbbrClassID AND SAC.Code='ANS' WHERE StructureID=:ParentStructID AND PathLength-:DistanceFromManhole <= 0.01 AND PathLength-:DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle=87 WHERE EventID=:ParentEventID; END UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; UPDATE ManholeConnection SET ChildStructureID=:StructureID WHERE ManholeConnectionID=:ParentManholeConnectionID; INSERT INTO LStructureStructure(StructureID,MasterStructureID) VALUES (:StructureID,:ParentStructID); END END ALTER PROCEDURE UpdateHouseConnection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40),FlowDirectionID integer, InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WallThickness decimal(10,5),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),ResponsiblePersonCertificateNo varchar(15),LocationDetails varchar(255), FlowControlID integer,RenovationYear integer,SewerCategory varchar(100),PreCleaningID integer,DrainageArea varchar(15), InspPurposeID integer,Comment1 varchar(1000),Comment2 varchar(1000),StartManhole varchar(20), DistanceFromManhole decimal(6,2),ParentStructID integer,ParentEventID integer,ParentManholeConnectionID integer) AS DECLARE VARIABLE StartManholeID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF (PreCleaningID = 0) THEN PreCleaningID = NULL; IF (FlowControlID = 0) THEN FlowControlID = NULL; IF (InspPurposeID = 0) THEN InspPurposeID = NULL; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END SELECT TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID,:TVInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo, :StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WallThickness,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet, :SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:ResponsiblePersonCertificateNo, :LocationDetails,:FlowControlID,:RenovationYear,:SewerCategory,:PreCleaningID,:DrainageArea,:InspPurposeID,:Comment1,:Comment2); UPDATE HouseConnection SET RevManhole=:RevManhole,ConnectionPoint=:ConnectionPoint,StartManholeID=:StartManholeID, DistanceFromManhole=:DistanceFromManhole WHERE StructureID=:StructureID; DELETE FROM LStructureStructure WHERE StructureID=:StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID) VALUES (:ParentStructID,:StructureID); UPDATE Event SET ChildStructureID=:StructureID WHERE EventID=:ParentEventID; UPDATE ManholeConnection SET ChildStructureID=:StructureID WHERE ManholeConnectionID=:ParentManholeConnectionID; END END SINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetHouseConnectionByID fALTER TABLE MANHOLESTRUCTURE ADD UPPERCONEHEIGHT DECIMAL(5,2), ADD LOWERCONEHEIGHT DECIMAL(5,2); COMMIT ALTER PROCEDURE WRITEMANHOLESTRUCTURE ( ID INTEGER, NUMBER VARCHAR(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), MANHOLEFUNCTIONID INTEGER, MANHOLEDEPTH DECIMAL(5,2), DESCENDINGHELP SMALLINT, DESCENDINGHELPTYPEID INTEGER, DESCENDINGHELPMATERIALID INTEGER, INNERPROTECTIONID INTEGER, NOOFCONNECTIONS INTEGER, HANDEDOVER SMALLINT, NOOFCOVERS INTEGER, COVERSHAPEID INTEGER, COVERTYPEID INTEGER, COVERLENGTHORDN DECIMAL(5,2), COVERWIDTH DECIMAL(5,2), COVERCLASSID INTEGER, COVERMATERIALID INTEGER, NOOFDISTANCERINGS INTEGER, DISTANCERINGHEIGHT INTEGER, DIRTTRAP SMALLINT, UPPERSHAPEID INTEGER, UPPERPLATE SMALLINT, UPPERCONE SMALLINT, UPPERCONEHEIGHT DECIMAL(5,2), UPPERLENGTHORDN DECIMAL(5,2), UPPERWIDTH DECIMAL(5,2), UPPERHEIGHT DECIMAL(5,2), UPPERMATERIALID INTEGER, LOWERSHAPEID INTEGER, LOWERPLATE SMALLINT, LOWERCONE SMALLINT, LOWERCONEHEIGHT DECIMAL(5,2), LOWERLENGTHORDN DECIMAL(5,2), LOWERWIDTH DECIMAL(5,2), LOWERHEIGHT DECIMAL(5,2), LOWERMATERIALID INTEGER, LOWERPLATFORM SMALLINT, BOTTOMSHAPEID INTEGER, BOTTOMLENGTHORDN DECIMAL(5,2), BOTTOMWIDTH DECIMAL(5,2), BOTTOMHEIGHT DECIMAL(5,2), BOTTOMMATERIALID INTEGER, FLUMESHAPEID INTEGER, FLUMEMATERIALID INTEGER ) RETURNS (STRUCTUREID INTEGER) AS BEGIN IF (ID <= 0) THEN ID = GEN_ID(STRUCTURE_GEN, 1); STRUCTUREID = ID; UPDATE OR INSERT INTO STRUCTURE (StructureID, Number, CODEDIGIT, INSPDATE, STREET, STREETCODE, ZIP, CITY, BUILDYEAR, REPORTNO, GROUNDWATERLEVEL) VALUES (:ID, :NUMBER, :CODEDIGIT, :INSPDATE, :STREET, :STREETCODE, :ZIP, :CITY, :BUILDYEAR, :REPORTNO, :GROUNDWATERLEVEL); UPDATE OR INSERT INTO MANHOLESTRUCTURE ( STRUCTUREID, MANHOLEFUNCTIONID, MANHOLEDEPTH, DESCENDINGHELP, DESCENDINGHELPTYPEID, DESCENDINGHELPMATERIALID, INNERPROTECTIONID, NOOFCONNECTIONS, HANDEDOVER, NOOFCOVERS, COVERSHAPEID, COVERTYPEID, COVERLENGTHORDN, COVERWIDTH, COVERCLASSID, COVERMATERIALID, NOOFDISTANCERINGS, DISTANCERINGHEIGHT, DIRTTRAP, UPPERSHAPEID, UPPERPLATE, UPPERCONE, UPPERCONEHEIGHT, UPPERLENGTHORDN, UPPERWIDTH, UPPERHEIGHT, UPPERMATERIALID, LOWERSHAPEID, LOWERPLATE, LOWERCONE, LOWERCONEHEIGHT, LOWERLENGTHORDN, LOWERWIDTH, LOWERHEIGHT, LOWERMATERIALID, LOWERPLATFORM, BOTTOMSHAPEID, BOTTOMLENGTHORDN, BOTTOMWIDTH, BOTTOMHEIGHT, BOTTOMMATERIALID, FLUMESHAPEID, FLUMEMATERIALID) VALUES ( :ID, :MANHOLEFUNCTIONID, :MANHOLEDEPTH, :DESCENDINGHELP, :DESCENDINGHELPTYPEID, :DESCENDINGHELPMATERIALID, :INNERPROTECTIONID, :NOOFCONNECTIONS, :HANDEDOVER, :NOOFCOVERS, :COVERSHAPEID, :COVERTYPEID, :COVERLENGTHORDN, :COVERWIDTH, :COVERCLASSID, :COVERMATERIALID, :NOOFDISTANCERINGS, :DISTANCERINGHEIGHT, :DIRTTRAP, :UPPERSHAPEID, :UPPERPLATE, :UPPERCONE, :UPPERCONEHEIGHT, :UPPERLENGTHORDN, :UPPERWIDTH, :UPPERHEIGHT, :UPPERMATERIALID, :LOWERSHAPEID, :LOWERPLATE, :LOWERCONE, :LOWERCONEHEIGHT, :LOWERLENGTHORDN, :LOWERWIDTH, :LOWERHEIGHT, :LOWERMATERIALID, :LOWERPLATFORM, :BOTTOMSHAPEID, :BOTTOMLENGTHORDN, :BOTTOMWIDTH, :BOTTOMHEIGHT, :BOTTOMMATERIALID, :FLUMESHAPEID, :FLUMEMATERIALID); END; COMMIT EUPDATE MANHOLESTRUCTURE SET UPPERCONEHEIGHT=0.5 WHERE UPPERCONE = 1; EUPDATE MANHOLESTRUCTURE SET LOWERCONEHEIGHT=0.5 WHERE LOWERCONE = 1; YINSERT INTO Debuglog(msg) VALUES('ping') --ALTER PROCEDURE FindManhole(Name varchar(20)) HINSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE PROCEDURE WriteReach ^INSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetReachByID(StructureID integer) ALTER TABLE Separator DROP ResponsiblePerson, ADD MaterialID integer REFERENCES Abbr ON DELETE SET NULL, ADD Model varchar(100) ;ALTER TABLE PressureInspection ADD WaterLevel decimal(6,3) COMMIT eINSERT INTO Debuglog(msg) VALUES ('Ping') --ALTER PROCEDURE GetPressureInspByID(StructureID integer) XINSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WritePressureInsp XINSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WritePressureInsp 9ALTER TABLE PressureInspection ADD SectionNo varchar(10) 8ALTER TABLE Manhole ADD WaterProtectionZone varchar(40) 3ALTER TABLE Separator ADD NominalSize decimal(8,3) COMMIT ALTER PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer, Number varchar(40), UpperManhole varchar(40), LowerManhole varchar(40), Street varchar(40), InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), StreetCode varchar(25), City varchar(40), InspDate date, ZIP varchar(10), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), InspectedTubeLength decimal(6,2), VideoTape varchar(10), ResponsiblePerson varchar(30), SectionNo varchar(10), BuildYear integer, Device varchar(40), Norm varchar(40), NominalPressure decimal(6,2), Reference decimal(6,2), NominalTime time, NominalSedation time, TypeOfSealing varchar(30), Weather varchar(20), PipeLength decimal(6,2), WaterProtectionZone varchar(40), Volume decimal(6,3), SurfaceArea decimal(6,3), ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(40), GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100), SepModel varchar(100), WaterLevel decimal(6,3), NominalSize decimal(8,3)) AS BEGIN SELECT ModeID, S.Number, UM.Number, LM.Number, S.Street, OrdererPresent, ContractorPresent, S.StreetCode, S.City, S.InspDate, S.ZIP, S.CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, CASE WHEN M.StructureID IS NOT NULL THEN M.LowerPartMaterialID WHEN Sep.StructureID IS NOT NULL THEN Sep.MaterialID ELSE PS.MaterialID END AS MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, PI.VideoTape, PI.ResponsiblePerson, PI.SectionNo, S.BuildYear, Device, Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, TypeOfSealing, Weather, PipeLength, IIF(PS.WaterProtectionZone IS NOT NULL, PS.WaterProtectionZone, M.WaterProtectionZone), PTD.Volume, PTD.SurfaceArea, S.ReportNo, Comment1, Comment2, JobNo, S.GroundWaterLevel, Sep.Description, Sep.Manufacturer, Sep.Model, PI.WaterLevel, Sep.NominalSize FROM Structure S INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID LEFT OUTER JOIN Manhole M ON S.StructureID = M.StructureID LEFT OUTER JOIN Separator Sep ON S.StructureID = Sep.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID, :Number, :UpperManhole, :LowerManhole, :Street, OrdererPresent, ContractorPresent, StreetCode, City, InspDate, ZIP, CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, VideoTape, ResponsiblePerson, SectionNo, BuildYear, Device, Norm, NominalPressure, Reference, NominalTime, NominalSedation, TypeOfSealing, Weather, PipeLength, WaterProtectionZone, Volume, SurfaceArea, ReportNo, Comment1, Comment2, JobNo, GroundWaterLevel, SepDescription, SepManufacturer, SepModel, WaterLevel, NominalSize; END ]--UpdatePressureInsp, AddPressureInsp are obsolete! CREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(40), UpperManhole varchar(40), LowerManhole varchar(40), Street varchar(40), InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), StreetCode varchar(25), City varchar(40), InspDate date, ZIP varchar(10), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), InspectedTubeLength decimal(6,2), VideoTape varchar(10), ResponsiblePerson varchar(30), SectionNo varchar(10), BuildYear integer, Device varchar(40), Norm varchar(40), NominalPressure decimal(6,2), Reference decimal(6,2), NominalTime time, NominalSedation time, TypeOfSealing varchar(30), Weather varchar(20), PipeLength decimal(6,2), WaterProtectionZone varchar(40), Volume decimal(6,3), SurfaceArea decimal(6,3), ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(40), GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100), SepModel varchar(100), WaterLevel decimal(6,3), NominalSize decimal(8,3)) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:ID); END ELSE ID = GEN_ID(Structure_gen,1); PressureInspectionID = GEN_ID(PressureInspection_gen,1); PressureTestDataID = GEN_ID(PressureTestData_gen,1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear,:ReportNo,:GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE Manhole SET LOWERPARTMATERIALID = NULLIF(:MaterialID, 0), WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END CALTER TABLE InclMeasurement ADD HeightDifference DECIMAL(6, 2); COMMIT &ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,HeightDifference,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:HeightDifference,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END @CREATE PROCEDURE WriteInclMeasurement ( ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; DECLARE VARIABLE AbbrSet varchar(40); BEGIN STRUCTUREID = ID; IF (STRUCTUREID <= 0) THEN STRUCTUREID = GEN_ID(STRUCTURE_GEN, 1); SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:STRUCTUREID INTO :InclMeasurementID; IF ((InclMeasurementID IS NULL) OR (InclMeasurementID <= 0)) THEN InclMeasurementID = GEN_ID(InclMeasurement_gen, 1); InspectionModeID = NULLIF(:InspectionModeID, 0); DistrictNoID = NULLIF(:DistrictNoID, 0); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE OR INSERT INTO Structure ( StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel ) VALUES ( :StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel ); UPDATE OR INSERT INTO PipeStructure ( StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict ) VALUES ( :StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict ); UPDATE OR INSERT INTO InclMeasurement ( InclMeasurementID, StructureID, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, HeightDifference ) VALUES ( :InclMeasurementID, :StructureID, NULLIF(:FlowDirectionID, 0), :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :HeightDifference ); UPDATE OR INSERT INTO Reach ( StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D ) VALUES( :StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D ); END H--CREATE PROCEDURE WriteEvent INSERT INTO Debuglog(msg) VALUES ('Ping') CREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, CodeID integer, Code varchar(10), Comment varchar(80), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength decimal(6,2), PathLength decimal(6,2), Measure1 decimal(10,3), Unit1 varchar(10), Measure2 decimal(10,3), Unit2 varchar(10), VideoCounter time, RouteDamageID integer, RouteDamage varchar(10), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(50)) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, AdditionalCodeID, ManholePartID, ManholePart) VALUES(:EventID, :TVInspectionID, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart); EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END [INSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WriteHouseConnection [INSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WriteHouseConnection 'CREATE GENERATOR ReportNo_KampacHF_gen EXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; DECLARE VARIABLE setName varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES setName; EXECUTE PROCEDURE AddAbbr(setName,'LK','HF','Haltung Fuellstandskontrolle',NULL,NULL,NULL,NULL,0,1,'') RETURNING_VALUES AbbrID; END CREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, CodeID integer, Code varchar(10), Comment varchar(80), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength decimal(6,2), PathLength decimal(6,2), Measure1 decimal(10,3), Unit1 varchar(10), Measure2 decimal(10,3), Unit2 varchar(10), VideoCounter time, RouteDamageID integer, RouteDamage varchar(10), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(50)) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart) VALUES(:EventID, :TVInspectionID, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:ChildStructureID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart); EXECUTE PROCEDURE UpdateInspAndPipeLength(EventID); END RALTER TABLE Project ADD RuleSourceFile varchar(200), ADD RuleImportTime timestamp COMMIT CREATE TABLE LayerImage( ImageID integer NOT NULL PRIMARY KEY, Name varchar(100), TileCountX integer, TileCountY integer ) CREATE TABLE LayerImageTile( ImageID integer NOT NULL REFERENCES LayerImage(ImageID) ON DELETE CASCADE, X integer NOT NULL, Y integer NOT NULL, ImageData blob, constraint pk_LayerImageTile primary key (ImageID, X, Y) ) CREATE GENERATOR LayerImage_gen OCREATE TABLE Layer( LayerID integer NOT NULL PRIMARY KEY, Name varchar(40) ) CREATE GENERATOR Layer_gen CREATE TABLE LayerElement( ElementID integer NOT NULL PRIMARY KEY, LayerID integer REFERENCES Layer ON DELETE CASCADE, Color integer ) "CREATE GENERATOR LayerElement_gen CREATE TABLE LayerTextElement( ElementID integer NOT NULL PRIMARY KEY REFERENCES LayerElement ON DELETE CASCADE, Text varchar(200), X float, Y float ) CREATE TABLE LayerCircleElement( ElementID integer NOT NULL PRIMARY KEY REFERENCES LayerElement ON DELETE CASCADE, R float, X float, Y float ) CREATE TABLE LayerRectElement( ElementID integer NOT NULL PRIMARY KEY REFERENCES LayerElement ON DELETE CASCADE, X float, Y float, W float, H float, Angle float ) wCREATE TABLE LayerPolyLineElement( ElementID integer NOT NULL PRIMARY KEY REFERENCES LayerElement ON DELETE CASCADE ) CREATE TABLE LayerPolyLinePoint( ElementID integer NOT NULL REFERENCES LayerPolyLineElement ON DELETE CASCADE, PointNo integer NOT NULL, X float, Y float, constraint pk_LayerPolyLinePoint primary key (ElementID, PointNo) ) CREATE TABLE LayerImageElement( ElementID integer NOT NULL PRIMARY KEY REFERENCES LayerElement ON DELETE CASCADE, ImageID integer REFERENCES LayerImage(ImageID) ON DELETE CASCADE, X float, Y float, W float, H float, Angle float ) CREATE TABLE LStructureLayer( LStructureLayerID integer NOT NULL PRIMARY KEY, StructureID integer REFERENCES Structure ON DELETE SET NULL, LayerID integer REFERENCES Layer ON DELETE CASCADE, X float, Y float, Angle float, X_REF11 float, Y_REF11 float, X_REF12 float, Y_REF12 float, X_REF21 float, Y_REF21 float, X_REF22 float, Y_REF22 float, DIST11 float, DIST12 float, DIST21 float, DIST22 float, IsFlipped1 smallint, IsFlipped2 smallint, IsActive smallint ) %CREATE GENERATOR LStructureLayer_gen ALTER PROCEDURE FindCustomer (Name varchar(40),Street varchar(40),Zip varchar(10),City varchar(40),Land varchar(20), Tel varchar(30),Fax varchar(30),ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (Upper(C.Name) = Upper(:Name)) AND ((NullIf(C.Street, '') = '') OR (NullIf(:Street, '') = '') OR (Upper(C.Street) = Upper(:Street))) AND ((NullIf(C.Zip, '') = '') OR (NullIf(:Zip, '') = '') OR (Upper(C.Zip) = Upper(:Zip))) AND ((NullIf(C.City, '') = '') OR (NullIf(:City, '') = '') OR (Upper(C.City) = Upper(:City))) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo) RETURNING_VALUES :CustomerID; END 3ALTER TABLE Structure ADD GroupingCode varchar(20) +ALTER TABLE Manhole ADD ManholeDepth float =INSERT INTO Debuglog(msg) VALUES ('Ping') --EXECUTE BLOCK AS COMMIT CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter integer, EndMeter integer, GroupingCode varchar(20), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); IF (NULLIF(:ParentManholeConnectionID,0) IS NOT NULL) THEN BEGIN UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END /@IGNORE CREATE OR ALTER PROCEDURE GetReachByID [INSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WriteHouseConnection ]INSERT INTO Debuglog(msg) VALUES ('ping') --CREATE OR ALTER PROCEDURE GetHouseConnectionByID jINSERT INTO Debuglog(msg) VALUES ('ping') --CREATE PROCEDURE WriteManhole(ID integer, Number varchar(40), '@IGNORE ALTER PROCEDURE GetManholeByID =INSERT INTO Debuglog(msg) VALUES ('Ping') --EXECUTE BLOCK AS =INSERT INTO Debuglog(msg) VALUES ('Ping') --EXECUTE BLOCK AS /@IGNORE CREATE OR ALTER PROCEDURE WriteManhole =INSERT INTO Debuglog(msg) VALUES ('ping') --EXECUTE BLOCK AS [INSERT INTO Debuglog(msg) VALUES ('ping') --CREATE OR ALTER PROCEDURE WriteHouseConnection =INSERT INTO Debuglog(msg) VALUES ('ping') --EXECUTE BLOCK AS 'EXECUTE BLOCK AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN SELECT FIRST 1 WizardID FROM Wizard WHERE Name = 'REACH' INTO :WizardID; IF (WizardID IS NULL) THEN BEGIN WizardID = 10000; INSERT INTO Wizard VALUES(:WizardID, 'REACH'); END SELECT FIRST 1 WizardFieldID FROM WizardField WHERE WizardID = :WizardID AND Name = 'GROUPINGCODE' INTO :WizardFieldID; IF (WizardFieldID IS NULL) THEN BEGIN WizardFieldID = 10000; INSERT INTO WizardField VALUES(:WizardFieldID, :WizardID, 'GROUPINGCODE'); END SELECT FIRST 1 RuleID FROM RULE WHERE WizardFieldID = :WizardFieldID AND Name = 'REACH_GROUPINGCODE_VIS' INTO RuleID; IF (RuleID IS NULL) THEN BEGIN RuleID = 10000; INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, 'REACH_GROUPINGCODE_VIS', 'false'); END SELECT FIRST 1 WizardID FROM Wizard WHERE Name = 'MANHOLE' INTO :WizardID; IF (WizardID IS NULL) THEN BEGIN WizardID = 10001; INSERT INTO Wizard VALUES(:WizardID, 'MANHOLE'); END SELECT FIRST 1 WizardFieldID FROM WizardField WHERE WizardID = :WizardID AND Name = 'GROUPINGCODE' INTO :WizardFieldID; IF (WizardFieldID IS NULL) THEN BEGIN WizardFieldID = 10001; INSERT INTO WizardField VALUES(:WizardFieldID, :WizardID, 'GROUPINGCODE'); END SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = 'MANHOLE_GROUPINGCODE_VIS' INTO RuleID; IF (RuleID IS NULL) THEN BEGIN RuleID = 10001; INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, 'MANHOLE_GROUPINGCODE_VIS', 'false'); END END ALTER PROCEDURE AddPreset(ControlKey varchar(50), Text varchar(256), PresetCnt integer) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP (:PresetCnt) PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END ELSE BEGIN UPDATE Preset SET Timepoint='now' WHERE ControlKey=:ControlKey AND Text=:Text; END END END ALTER PROCEDURE GetPresets(ControlKey varchar(50), PresetCnt integer) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST (:PresetCnt) DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END {UPDATE RDB$RELATION_FIELDS SET RDB$NULL_FLAG = NULL WHERE RDB$FIELD_NAME = 'STRUCTUREID' AND RDB$RELATION_NAME = 'GPSDATA' ACREATE TABLE GPSDATALINK( GPSDataLinkID integer NOT NULL PRIMARY KEY, GPSDataID integer REFERENCES GPSData ON DELETE SET NULL, StructureID integer REFERENCES Structure ON DELETE CASCADE, EventID integer REFERENCES Event ON DELETE CASCADE, GPSDataIndex integer NOT NULL, GPSDataClass integer, Timepoint timestamp ) !CREATE GENERATOR GPSDATALINK_gen &CREATE GENERATOR GPSDATALINKINDEX_gen CREATE TRIGGER AFTER_DELETE_DATA_LINK FOR GPSDATALINK ACTIVE AFTER DELETE AS BEGIN IF (OLD.GPSDataID IS NOT NULL) THEN DELETE FROM GPSData WHERE GPSDataID=OLD.GPSDataID; END (CREATE PROCEDURE update_rule(from_str character varying(100), to_str character varying(100), name character varying(100)) AS BEGIN UPDATE RULE SET code = ( SELECT FIRST 1 replace(code, :from_str, :to_str) FROM RULE WHERE name = upper(:name) ) WHERE name = upper(:name); END tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_MLHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_MWHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_HLHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_HWHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_HVHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_HFHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_SWHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_SVHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_SMHEADER') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_SUHEADER') sEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTPRESS_AHEADER') yEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'ReportTV_ConnectionHeader') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'ReportTV_ReachHeader') pEXECUTE PROCEDURE update_rule('''_Client'',''Client''', '''_CustomerName'',''CustomerName''', 'REPORTP_HEADER') qEXECUTE PROCEDURE update_rule('''_Client'',''Client''', '''_CustomerName'',''CustomerName''', 'REPORTPM_HEADER') nEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'ReportS_Header') tEXECUTE PROCEDURE update_rule('''_Client'',''Customer''', '''_CustomerName'',''Customer''', 'REPORTSCANCAM_HEADER') DROP PROCEDURE update_rule \INSERT INTO Debuglog(msg) VALUES ('Ping') --CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION !CREATE GENERATOR LabelOffset_gen CREATE TABLE LabelOffset ( LabelOffsetID integer NOT NULL PRIMARY KEY, StructureID integer REFERENCES Structure ON DELETE CASCADE, EventID integer REFERENCES Event ON DELETE CASCADE, OffsetX float, OffsetY float, OffsetZ float ) CREATE TRIGGER Before_Insert_LabelOffset FOR LabelOffset BEFORE INSERT AS BEGIN NEW.LabelOffsetID = GEN_ID(LabelOffset_gen, 1); END 1ALTER TABLE LabelOffset ADD RootObjectID integer L ALTER TABLE LAYERELEMENT ADD Locked integer, ADD Hidden integer; 9@IGNORE CREATE OR ALTER PROCEDURE GetHouseConnectionByID ALTER PROCEDURE FindManhole(Name varchar(40)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE (S.Number = :Name) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen,1); INSERT INTO Structure(StructureID,Number) VALUES (:StructureID,:Name); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER Varchar(30), NUMBER Varchar(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), REVMANHOLE Varchar(30), CONNECTIONPOINT Varchar(40), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE Varchar(100), ORDERERPRESENT Varchar(100), CONTRACTORPRESENT Varchar(100), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT Decimal(10,5), PROFILEWIDTH Decimal(10,5), REACHLENGTH Decimal(6,2), JUDGEMENT Varchar(100), TIMEPOINT Timestamp, PICTUREQUALITY Varchar(20), VIDEOCOUNTER Varchar(10), VIDEOTAPE Varchar(10), SECTIONNO Varchar(10), RESPONSIBLEPERSON Varchar(30), SITEPLANNO Varchar(20), MUNICIPALCODE Varchar(10), DISTRICTNOID Integer, DISTRICTNO Varchar(10), CITYMAPPAGENO Varchar(10), STREETSURFACE Varchar(20), WEATHERID Integer, WEATHER Varchar(20), SEWERNO Varchar(20), SCALE Integer, PIPELENGTH Decimal(6,2), WALLTHICKNESS Decimal(10,5), WATERPROTECTIONZONE Varchar(40), POSITIONINSTREETID Integer, POSITIONINSTREET Varchar(40), SEWERAGEDISTRICT Varchar(40), ENDOFGUARANTEE Varchar(20), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE Varchar(30), TYPEOFSEALING Varchar(30), FLAG Varchar(10), INSPECTIONLENGTH Decimal(6,2), RESPONSIBLEPERSONCERTIFICATENO Varchar(15), LOCATIONDETAILS Varchar(255), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY Varchar(100), PRECLEANINGID Integer, DRAINAGEAREA Varchar(15), INSPPURPOSEID Integer, COMMENT1 Varchar(1000), COMMENT2 Varchar(1000), GROUPINGCODE Varchar(20), STARTMANHOLE Varchar(40), DISTANCEFROMMANHOLE Decimal(6,2), PARENTSTRUCTID Integer, PARENTEVENTID Integer, PARENTMANHOLECONNECTIONID Integer ) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END @IGNORE A test ignored command @IGNORE ALTER PROCEDURE SetStructureActive(StructureID integer) AS BEGIN UPDATE Structure SET IsActive=0 WHERE IsActive=1 AND StructureID <> :StructureID; UPDATE Structure SET IsActive=1 WHERE StructureID = :StructureID; END @IGNORE ;EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'LAYERMEASUREELEMENT')) THEN EXECUTE STATEMENT 'CREATE TABLE LayerMeasureElement (ElementID INTEGER PRIMARY KEY REFERENCES LayerElement(ElementID) ON DELETE CASCADE,X FLOAT,Y FLOAT,Len FLOAT,Offset FLOAT,Angle FLOAT)'; END ALTER TABLE Manhole ADD CoverTypeID integer REFERENCES Abbr, ADD BalancingTypeID integer REFERENCES Abbr, ADD BalancingMaterialID integer REFERENCES Abbr, ADD BalancingHeight float, ADD TaperRingSlack float, ADD TaperRingHeight float, ADD DescendingHelpSpace float COMMIT '@IGNORE ALTER PROCEDURE GetManholeByID /@IGNORE CREATE OR ALTER PROCEDURE WriteManhole @IGNORE EXECUTE BLOCK ALTER TABLE Structure ADD StreetID integer REFERENCES Abbr, ADD PropertyID integer REFERENCES Abbr, ADD FloodAreaID integer REFERENCES Abbr, ADD StoppingUnitID integer REFERENCES Abbr, ADD MessageID integer REFERENCES Abbr, ADD AtmosphereID integer REFERENCES Abbr ALTER TABLE Manhole ADD PositionInStreetID integer REFERENCES Abbr, ADD TypeOfNodeID integer REFERENCES Abbr, ADD TypeOfStructureID integer REFERENCES Abbr, ADD DescendingHelpMaterialID integer REFERENCES Abbr ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10, 5), ProfileWidth decimal(10, 5), ReachLength decimal(6, 2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6, 2), WallThickness decimal(10, 5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6, 2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, WaterProtectionZone =: WaterProtectionZone, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter integer, EndMeter integer, GroupingCode varchar(20), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); IF (NULLIF(:ParentManholeConnectionID,0) IS NOT NULL) THEN BEGIN UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, GroupingCode varchar(20), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo,StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, Comment1,Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :ParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER Varchar(30), NUMBER Varchar(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), REVMANHOLE Varchar(30), CONNECTIONPOINT Varchar(40), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE Varchar(100), ORDERERPRESENT Varchar(100), CONTRACTORPRESENT Varchar(100), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT Decimal(10,5), PROFILEWIDTH Decimal(10,5), REACHLENGTH Decimal(6,2), JUDGEMENT Varchar(100), TIMEPOINT Timestamp, PICTUREQUALITY Varchar(20), VIDEOCOUNTER Varchar(10), VIDEOTAPE Varchar(10), SECTIONNO Varchar(10), RESPONSIBLEPERSON Varchar(30), SITEPLANNO Varchar(20), MUNICIPALCODE Varchar(10), DISTRICTNOID Integer, DISTRICTNO Varchar(10), CITYMAPPAGENO Varchar(10), STREETSURFACE Varchar(20), WEATHERID Integer, WEATHER Varchar(20), SEWERNO Varchar(20), SCALE Integer, PIPELENGTH Decimal(6,2), WALLTHICKNESS Decimal(10,5), WATERPROTECTIONZONE Varchar(40), POSITIONINSTREETID Integer, POSITIONINSTREET Varchar(40), SEWERAGEDISTRICT Varchar(40), ENDOFGUARANTEE Varchar(20), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE Varchar(30), TYPEOFSEALING Varchar(30), FLAG Varchar(10), INSPECTIONLENGTH Decimal(6,2), RESPONSIBLEPERSONCERTIFICATENO Varchar(15), LOCATIONDETAILS Varchar(255), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY Varchar(100), PRECLEANINGID Integer, DRAINAGEAREA Varchar(15), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 Varchar(1000), COMMENT2 Varchar(1000), GROUPINGCODE Varchar(20), STARTMANHOLE Varchar(40), DISTANCEFROMMANHOLE Decimal(6,2), PARENTSTRUCTID Integer, PARENTEVENTID Integer, PARENTMANHOLECONNECTIONID Integer ) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END [CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000), Comment2 varchar(1000), GroupingCode varchar(20), Surface varchar(20), StartManhole varchar(40), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, TV.VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, Comment1, Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, LSS.MasterStructureID, Ev.EventID, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID = LSS.StructureID AND (LSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID = S.StructureID AND MC.StructureID = LSS.MasterStructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :ParentManholeConnectionID, :IsActive; END ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), ManholeFormID integer, ResponsiblePerson varchar(30), StateTotal varchar(30), CoordX decimal(11,3), CoordY decimal(11,3), CoordExactID integer, CoverHeight decimal(8,3), CoverExactID integer, BottomHeight decimal(8,3), BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN decimal(5,2), CoverWidth decimal(5,2), CoverShapeID integer, ManhShapeID integer, ManhDN decimal(5,2), ManhWidth decimal(5,2), TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2), ManhLowerHeight decimal(5,2), NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(100), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(40), PositionInStreetID integer, VideoTape varchar(10), Weather varchar(20), WeatherID integer, GroupingCode varchar(20), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :IsActive, :ParentEventID, :ParentStructureID; END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), ManholeFormID integer, ResponsiblePerson varchar(30), StateTotal varchar(30), CoordX decimal(11,3), CoordY decimal(11,3), CoordExactID integer, CoverHeight decimal(8,3), CoverExactID integer, BottomHeight decimal(8,3), BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN decimal(5,2), CoverWidth decimal(5,2), CoverShapeID integer, ManhShapeID integer, ManhDN decimal(5,2), ManhWidth decimal(5,2), TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN decimal(5,2), ManhLowerWidth decimal(5,2), ManhLowerHeight decimal(5,2), NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(100), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(40), PositionInStreetID integer, VideoTape varchar(10), Weather varchar(20), WeatherID integer, GroupingCode varchar(20), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END ELSE BEGIN StructureID = ID; END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END EXECUTE BLOCK AS DECLARE VARIABLE MaxID integer; BEGIN SELECT COALESCE(Max(StructureParticleID), 0) FROM StructureParticle INTO :MaxID; EXECUTE STATEMENT 'SET GENERATOR StructureParticle_gen TO ' || :MaxID; END @IGNORE PipeLength START DROP VIEW TVInspsFull DROP VIEW JointPressInspsFull DROP VIEW ReachesFull DROP VIEW HouseConnectionsFull DROP VIEW PANCamInspsFull DROP PROCEDURE GetReachByID DROP PROCEDURE AddReach DROP PROCEDURE WriteReach DROP PROCEDURE UpdateReach &DROP PROCEDURE GetHouseConnectionByID "DROP PROCEDURE AddHouseConnection $DROP PROCEDURE WriteHouseConnection %DROP PROCEDURE UpdateHouseConnection #DROP PROCEDURE UpdatePipeStructure (DROP PROCEDURE GetScanCamInspectionByID $DROP PROCEDURE AddScanCamInspection 'DROP PROCEDURE UpdateScanCamInspection %DROP PROCEDURE UpdatePipeStructureSC &DROP PROCEDURE GetInclMeasurementByID "DROP PROCEDURE AddInclMeasurement $DROP PROCEDURE WriteInclMeasurement %DROP PROCEDURE UpdateInclMeasurement 'DROP PROCEDURE UpdatePipeStructureIncl 'DROP PROCEDURE GetPANCamInspectionByID #DROP PROCEDURE AddPANCamInspection &DROP PROCEDURE UpdatePANCamInspection #DROP PROCEDURE GetPressureInspByID DROP PROCEDURE AddPressureInsp !DROP PROCEDURE WritePressureInsp "DROP PROCEDURE UpdatePressureInsp 0ALTER TABLE PipeStructure ADD PipeLength2 float COMMIT 2UPDATE PipeStructure SET PipeLength2 = PipeLength *ALTER TABLE PipeStructure DROP PipeLength COMMIT :ALTER TABLE PipeStructure ALTER PipeLength2 TO PipeLength COMMIT )CREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(40), UpperManhole varchar(40), LowerManhole varchar(40), Street varchar(40), InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), StreetCode varchar(25), City varchar(40), InspDate date, ZIP varchar(10), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), InspectedTubeLength decimal(6,2), VideoTape varchar(10), ResponsiblePerson varchar(30), SectionNo varchar(10), BuildYear integer, Device varchar(40), Norm varchar(40), NominalPressure decimal(6,2), Reference decimal(6,2), NominalTime time, NominalSedation time, TypeOfSealing varchar(30), Weather varchar(20), PipeLength decimal(6,2), WaterProtectionZone varchar(40), Volume decimal(6,3), SurfaceArea decimal(6,3), ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(40), GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100), SepModel varchar(100), WaterLevel decimal(6,3), NominalSize decimal(8,3)) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(5); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:ID); END ELSE ID = GEN_ID(Structure_gen,1); PressureInspectionID = GEN_ID(PressureInspection_gen,1); PressureTestDataID = GEN_ID(PressureTestData_gen,1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear,:ReportNo,:GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE Manhole SET LOWERPARTMATERIALID = NULLIF(:MaterialID, 0), WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END  CREATE OR ALTER PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer, Number varchar(40), UpperManhole varchar(40), LowerManhole varchar(40), Street varchar(40), InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), StreetCode varchar(25), City varchar(40), InspDate date, ZIP varchar(10), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), InspectedTubeLength decimal(6,2), VideoTape varchar(10), ResponsiblePerson varchar(30), SectionNo varchar(10), BuildYear integer, Device varchar(40), Norm varchar(40), NominalPressure decimal(6,2), Reference decimal(6,2), NominalTime time, NominalSedation time, TypeOfSealing varchar(30), Weather varchar(20), PipeLength decimal(6,2), WaterProtectionZone varchar(40), Volume decimal(6,3), SurfaceArea decimal(6,3), ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(40), GroundWaterLevel varchar(100), SepDescription varchar(100), SepManufacturer varchar(100), SepModel varchar(100), WaterLevel decimal(6,3), NominalSize decimal(8,3)) AS BEGIN SELECT ModeID, S.Number, UM.Number, LM.Number, S.Street, OrdererPresent, ContractorPresent, S.StreetCode, S.City, S.InspDate, S.ZIP, S.CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, CASE WHEN M.StructureID IS NOT NULL THEN M.LowerPartMaterialID WHEN Sep.StructureID IS NOT NULL THEN Sep.MaterialID ELSE PS.MaterialID END AS MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, PI.VideoTape, PI.ResponsiblePerson, PI.SectionNo, S.BuildYear, Device, Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, TypeOfSealing, Weather, PipeLength, IIF(PS.WaterProtectionZone IS NOT NULL, PS.WaterProtectionZone, M.WaterProtectionZone), PTD.Volume, PTD.SurfaceArea, S.ReportNo, Comment1, Comment2, JobNo, S.GroundWaterLevel, Sep.Description, Sep.Manufacturer, Sep.Model, PI.WaterLevel, Sep.NominalSize FROM Structure S INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID LEFT OUTER JOIN Manhole M ON S.StructureID = M.StructureID LEFT OUTER JOIN Separator Sep ON S.StructureID = Sep.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID, :Number, :UpperManhole, :LowerManhole, :Street, OrdererPresent, ContractorPresent, StreetCode, City, InspDate, ZIP, CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, VideoTape, ResponsiblePerson, SectionNo, BuildYear, Device, Norm, NominalPressure, Reference, NominalTime, NominalSedation, TypeOfSealing, Weather, PipeLength, WaterProtectionZone, Volume, SurfaceArea, ReportNo, Comment1, Comment2, JobNo, GroundWaterLevel, SepDescription, SepManufacturer, SepModel, WaterLevel, NominalSize; END CREATE OR ALTER PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END ICREATE OR ALTER PROCEDURE WriteInclMeasurement ( ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; DECLARE VARIABLE AbbrSet varchar(40); BEGIN STRUCTUREID = ID; IF (STRUCTUREID <= 0) THEN STRUCTUREID = GEN_ID(STRUCTURE_GEN, 1); SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:STRUCTUREID INTO :InclMeasurementID; IF ((InclMeasurementID IS NULL) OR (InclMeasurementID <= 0)) THEN InclMeasurementID = GEN_ID(InclMeasurement_gen, 1); InspectionModeID = NULLIF(:InspectionModeID, 0); DistrictNoID = NULLIF(:DistrictNoID, 0); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE OR INSERT INTO Structure ( StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel ) VALUES ( :StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel ); UPDATE OR INSERT INTO PipeStructure ( StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict ) VALUES ( :StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict ); UPDATE OR INSERT INTO InclMeasurement ( InclMeasurementID, StructureID, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, HeightDifference ) VALUES ( :InclMeasurementID, :StructureID, NULLIF(:FlowDirectionID, 0), :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :HeightDifference ); UPDATE OR INSERT INTO Reach ( StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D ) VALUES( :StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D ); END 0CREATE OR ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,HeightDifference,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:HeightDifference,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE OR ALTER PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(40), CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END rCREATE OR ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END NCREATE OR ALTER PROCEDURE AddScanCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10, 5), ProfileWidth decimal(10, 5), ReachLength decimal(6, 2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6, 2), WallThickness decimal(10, 5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6, 2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000),Comment2 varchar(1000)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, WaterProtectionZone =: WaterProtectionZone, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER Varchar(30), NUMBER Varchar(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), REVMANHOLE Varchar(30), CONNECTIONPOINT Varchar(40), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE Varchar(100), ORDERERPRESENT Varchar(100), CONTRACTORPRESENT Varchar(100), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT Decimal(10,5), PROFILEWIDTH Decimal(10,5), REACHLENGTH Decimal(6,2), JUDGEMENT Varchar(100), TIMEPOINT Timestamp, PICTUREQUALITY Varchar(20), VIDEOCOUNTER Varchar(10), VIDEOTAPE Varchar(10), SECTIONNO Varchar(10), RESPONSIBLEPERSON Varchar(30), SITEPLANNO Varchar(20), MUNICIPALCODE Varchar(10), DISTRICTNOID Integer, DISTRICTNO Varchar(10), CITYMAPPAGENO Varchar(10), STREETSURFACE Varchar(20), WEATHERID Integer, WEATHER Varchar(20), SEWERNO Varchar(20), SCALE Integer, PIPELENGTH Decimal(6,2), WALLTHICKNESS Decimal(10,5), WATERPROTECTIONZONE Varchar(40), POSITIONINSTREETID Integer, POSITIONINSTREET Varchar(40), SEWERAGEDISTRICT Varchar(40), ENDOFGUARANTEE Varchar(20), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE Varchar(30), TYPEOFSEALING Varchar(30), FLAG Varchar(10), INSPECTIONLENGTH Decimal(6,2), RESPONSIBLEPERSONCERTIFICATENO Varchar(15), LOCATIONDETAILS Varchar(255), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY Varchar(100), PRECLEANINGID Integer, DRAINAGEAREA Varchar(15), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 Varchar(1000), COMMENT2 Varchar(1000), GROUPINGCODE Varchar(20), STARTMANHOLE Varchar(40), DISTANCEFROMMANHOLE Decimal(6,2), PARENTSTRUCTID Integer, PARENTEVENTID Integer, PARENTMANHOLECONNECTIONID Integer ) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END [CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000), Comment2 varchar(1000), GroupingCode varchar(20), Surface varchar(20), StartManhole varchar(40), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, TV.VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, Comment1, Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, LSS.MasterStructureID, Ev.EventID, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID = LSS.StructureID AND (LSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID = S.StructureID AND MC.StructureID = LSS.MasterStructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :ParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter integer, EndMeter integer, GroupingCode varchar(20), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); IF (NULLIF(:ParentManholeConnectionID,0) IS NOT NULL) THEN BEGIN UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(20), LowerManhole varchar(20), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, GroupingCode varchar(20), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo,StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, Comment1,Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :ParentManholeConnectionID, :IsActive; END PRECREATE VIEW HouseConnectionsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT 'A' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, HC.StartManholeID, NULL AS LowerManholeID, UM.Number AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, HC.RevManhole, HC.DistanceFromManhole, LSS.MasterStructureID AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON HC.StartManholeID = UM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID RECREATE VIEW ReachesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1,Comment2) AS SELECT 'H' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, I.InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, I.Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN PANCamInspection PCI ON I.TVInspectionID=PCI.TVInspectionID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE PCI.TVInspectionID IS NULL q RECREATE VIEW JointPressInspsFull (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, PressureInspectionID, Mode, FlowDirectionID, FlowDirection, OrdererPresent, ContractorPresent, ResponsiblePerson, TypeOfSealing, Weather, Device, Norm, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea, Flag, Comment1, Comment2,GroundWaterLevel,VideoTape) AS SELECT S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, PS.DistrictNo, PS.PipeLength, PS.WaterProtectionZone, PS.PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, I.PressureInspectionID, MD.Code AS Mode, I.FlowDirectionID, FD.Code AS FlowDirection, I.OrdererPresent, I.ContractorPresent, I.ResponsiblePerson,I.TypeOfSealing, I.Weather, I.Device, I.Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, PTD.Volume, PTD.SurfaceArea, I.Flag, I.Comment1, I.Comment2,S.GroundWaterLevel,I.VideoTape FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN PressureInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN PressureTestData PTD ON PTD.PressureTestDataID=I.PressureTestDataID LEFT OUTER JOIN Abbrs IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Abbrs ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Abbrs MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Abbrs PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Abbrs MD ON I.ModeID = MD.AbbrID LEFT OUTER JOIN Abbrs FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE MD.Code IN ('MW', 'ML') @IGNORE COMMIT tRECREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,Comment1, Comment2 FROM ManholesFull ORDER BY 2 CREATE OR ALTER PROCEDURE WriteManholeConnection(ID integer, StructureID integer, TypeID integer, Dim decimal(7,3), Height decimal(7,3), MaterialID integer, ConnPosition smallint, Comment varchar(40), Coord varchar(10), ChildStructureID integer, Descr varchar(40)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; BEGIN ManholeConnectionID = ID; IF (ManholeConnectionID = 0) THEN BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen, 1); END SELECT count(*) FROM Structure WHERE StructureID = :ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END UPDATE OR INSERT INTO ManholeConnection(ManholeConnectionID, StructureID, TypeID, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr) VALUES(:ManholeConnectionID, :StructureID, NULLIF(:TypeID, 0), :Dim, :Height, NULLIF(:MaterialID, 0), :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr); END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter integer, EndMeter integer, GroupingCode varchar(20), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); IF (NULLIF(:ParentManholeConnectionID,0) IS NOT NULL) THEN BEGIN UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :ParentManholeConnectionID; END END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, GroupingCode varchar(20), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo,StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, Comment1,Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :ParentManholeConnectionID, :IsActive; END ICREATE OR ALTER PROCEDURE WriteInclMeasurement ( ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; DECLARE VARIABLE AbbrSet varchar(40); BEGIN STRUCTUREID = ID; IF (STRUCTUREID <= 0) THEN STRUCTUREID = GEN_ID(STRUCTURE_GEN, 1); SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:STRUCTUREID INTO :InclMeasurementID; IF ((InclMeasurementID IS NULL) OR (InclMeasurementID <= 0)) THEN InclMeasurementID = GEN_ID(InclMeasurement_gen, 1); InspectionModeID = NULLIF(:InspectionModeID, 0); DistrictNoID = NULLIF(:DistrictNoID, 0); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE OR INSERT INTO Structure ( StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel ) VALUES ( :StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel ); UPDATE OR INSERT INTO PipeStructure ( StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict ) VALUES ( :StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict ); UPDATE OR INSERT INTO InclMeasurement ( InclMeasurementID, StructureID, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, HeightDifference ) VALUES ( :InclMeasurementID, :StructureID, NULLIF(:FlowDirectionID, 0), :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :HeightDifference ); UPDATE OR INSERT INTO Reach ( StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D ) VALUES( :StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D ); END CREATE OR ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), HeightDifference decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, HeightDifference, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID = S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :HeightDifference, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :IsActive; END rCREATE OR ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END NCREATE OR ALTER PROCEDURE AddScanCamInspection (Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength decimal(6,2),Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter integer,EndMeter integer, RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2)) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(40),CodeDigit varchar(256),InspDate date,Street varchar(40),StreetCode varchar(25), Zip varchar(10),City varchar(40),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(100), OrdererPresent varchar(100),ContractorPresent varchar(100),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight decimal(10,5),ProfileWidth decimal(10,5), ReachLength integer,Judgement varchar(100),Timepoint timestamp,PictureQuality varchar(20), VideoCounter varchar(10),VideoTape varchar(10),SectionNo varchar(10),ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10),DistrictNoID integer,DistrictNo varchar(10), CityMapPageNo varchar(10),StreetSurface varchar(20),WeatherID integer,Weather varchar(20),SewerNo varchar(20),Scale integer, PipeLength decimal(6,2),WaterProtectionZone varchar(40),PositionInStreetID integer, PositionInStreet varchar(40),SewerageDistrict varchar(40),EndOfGuarantee varchar(20),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(30),TypeOfSealing varchar(30),Flag varchar(10), InspectionLength decimal(6,2),Comment1 varchar(1000),Comment2 varchar(1000),StartMeter decimal(6,2),EndMeter decimal(6,2), RTI_U decimal(5,2),RTI_D decimal(5,2),GTI_U decimal(5,2),GTI_D decimal(5,2),RTG_U decimal(5,2),RTG_D decimal(5,2), IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END @IGNORE @IGNORE @IGNORE @IGNORE CALTER TABLE JointPressureTest ADD InspectedTubeLength decimal(6,2) ALTER TABLE PressureInspection ADD NominalPressure decimal(6,2), ADD Reference decimal(6,2), ADD NominalTestTime time, ADD NominalSedation time, ADD Volume decimal(6,2), ADD SurfaceArea decimal(6,2) DROP VIEW TVInspsFull COMMIT DROP VIEW ReachesFull RECREATE VIEW ReachesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1,Comment2) AS SELECT 'H' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, CASE WHEN DN.AbbrID IS NULL THEN PS.DistrictNo ELSE DN.Code END AS DistrictNo, PS.PipeLength, PS.WaterProtectionZone, CASE WHEN PiS.AbbrID IS NULL THEN PS.PositionInStreet ELSE PiS.Code END AS PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, S.GroundWaterLevel,S.GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 LEFT OUTER JOIN AbbrText PiS ON PS.PositionInStreetID = PiS.AbbrID LEFT OUTER JOIN Language PiSLang ON PiS.LanguageID = PiSLang.LanguageID AND PiSLang.IsActive=1 LEFT OUTER JOIN AbbrText DN ON PS.DistrictNoID = DN.AbbrID LEFT OUTER JOIN Language DNLang ON DN.LanguageID = DNLang.LanguageID AND DNLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID *RECREATE VIEW HouseConnectionsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1, Comment2) AS SELECT 'A' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, CASE WHEN DN.AbbrID IS NULL THEN PS.DistrictNo ELSE DN.Code END AS DistrictNo, PS.PipeLength, PS.WaterProtectionZone, CASE WHEN PiS.AbbrID IS NULL THEN PS.PositionInStreet ELSE PiS.Code END AS PositionInStreet, PS.SewerageDistrict, HC.StartManholeID, NULL AS LowerManholeID, UM.Number AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, HC.RevManhole, HC.DistanceFromManhole, LSS.MasterStructureID AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, S.GroundWaterLevel, S.GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 LEFT OUTER JOIN AbbrText PiS ON PS.PositionInStreetID = PiS.AbbrID LEFT OUTER JOIN Language PiSLang ON PiS.LanguageID = PiSLang.LanguageID AND PiSLang.IsActive=1 LEFT OUTER JOIN AbbrText DN ON PS.DistrictNoID = DN.AbbrID LEFT OUTER JOIN Language DNLang ON DN.LanguageID = DNLang.LanguageID AND DNLang.IsActive=1 LEFT OUTER JOIN Structure UM ON HC.StartManholeID = UM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID RECREATE VIEW ManholesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1, Comment2) AS SELECT 'S' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, NULL AS SewerType, NULL AS MaterialID, NULL AS ProfileType, NULL AS ProfileHeight, NULL AS ProfileWidth, NULL AS ReachLength, NULL AS SitePlanNo, NULL AS MunicipalCode, NULL AS DistrictNo, NULL AS PipeLength, NULL AS WaterProtectionZone, NULL AS PositionInStreet, NULL AS SewerageDistrict, NULL AS UpperManholeID, NULL AS LowerManholeID, NULL AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, MF.Code AS ManholeForm, M.CoordX, M.CoordY, M.CoordExactID, M.CoverHeight, M.CoverExactID, M.BottomHeight, M.BottomExactID, STA.Code AS Status, FS.Code AS FlumeShape, DC.Code AS DefinitionClass, M.CoverDN, M.CoverWidth, CS.Code AS CoverShape, MS.Code AS ManhShape, M.ManhDN, M.ManhWidth, M.TaperShaftRing, MLS.Code AS ManhLowerShape, M.ManhLowerDN, M.ManhLowerWidth, M.ManhLowerHeight, NM.Code AS NeckMaterial, UPM.Code AS UpperPartMaterial, LPM.Code AS LowerPartMaterial, FM.Code AS FlumeMaterial, MST.Code AS ManholeStep, M.DescendingHelp, M.ShaftRing, M.CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.EndOfGuaranteeDate,I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,NULL AS WallThickness, GroundWaterLevel, GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN AbbrText IP ON M.InternalProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText MF ON M.ManholeFormID = MF.AbbrID LEFT OUTER JOIN Language MFLang ON MF.LanguageID = MFLang.LanguageID AND MFLang.IsActive=1 LEFT OUTER JOIN AbbrText STA ON M.StatusID = STA.AbbrID LEFT OUTER JOIN Language STALang ON STA.LanguageID = STALang.LanguageID AND STALang.IsActive=1 LEFT OUTER JOIN AbbrText FS ON M.FlumeShapeID = FS.AbbrID LEFT OUTER JOIN Language FSLang ON FS.LanguageID = FSLang.LanguageID AND FSLang.IsActive=1 LEFT OUTER JOIN AbbrText DC ON M.DefinitionClassID = DC.AbbrID LEFT OUTER JOIN Language DCLang ON DC.LanguageID = DCLang.LanguageID AND DCLang.IsActive=1 LEFT OUTER JOIN AbbrText CS ON M.CoverShapeID = CS.AbbrID LEFT OUTER JOIN Language CSLang ON CS.LanguageID = CSLang.LanguageID AND CSLang.IsActive=1 LEFT OUTER JOIN AbbrText MS ON M.ManhShapeID = MS.AbbrID LEFT OUTER JOIN Language MSLang ON MS.LanguageID = MSLang.LanguageID AND MSLang.IsActive=1 LEFT OUTER JOIN AbbrText MLS ON M.ManhLowerShapeID = MLS.AbbrID LEFT OUTER JOIN Language MLSLang ON MLS.LanguageID = MLSLang.LanguageID AND MLSLang.IsActive=1 LEFT OUTER JOIN AbbrText NM ON M.NeckMaterialID = NM.AbbrID LEFT OUTER JOIN Language NMLang ON NM.LanguageID = NMLang.LanguageID AND NMLang.IsActive=1 LEFT OUTER JOIN AbbrText UPM ON M.UpperPartMaterialID = UPM.AbbrID LEFT OUTER JOIN Language UPMLang ON UPM.LanguageID = UPMLang.LanguageID AND UPMLang.IsActive=1 LEFT OUTER JOIN AbbrText LPM ON M.LowerPartMaterialID = LPM.AbbrID LEFT OUTER JOIN Language LPMLang ON LPM.LanguageID = LPMLang.LanguageID AND LPMLang.IsActive=1 LEFT OUTER JOIN AbbrText FM ON M.FlumeMaterialID = FM.AbbrID LEFT OUTER JOIN Language FMLang ON FM.LanguageID = FMLang.LanguageID AND FMLang.IsActive=1 LEFT OUTER JOIN AbbrText MST ON M.ManholeStepID = MST.AbbrID LEFT OUTER JOIN Language MSTLang ON FM.LanguageID = MSTLang.LanguageID AND MSTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 COMMIT ,RECREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ManholesFull ORDER BY 2 cALTER TABLE ManholeConnection ADD TVInspectionID integer REFERENCES TVInspection ON DELETE CASCADE COMMIT EXECUTE BLOCK AS DECLARE VARIABLE StructureID integer; DECLARE VARIABLE ManholeConnectionID integer; BEGIN FOR SELECT ManholeConnectionID, StructureID FROM ManholeConnection MC INTO :ManholeConnectionID, :StructureID DO BEGIN UPDATE ManholeConnection SET TVInspectionID = (SELECT FIRST 1 I.TVInspectionID FROM TVInspection I WHERE I.StructureID = :StructureID) WHERE ManholeConnectionID=:ManholeConnectionID; END END (DROP PROCEDURE GetManholeConnectionByID $DROP PROCEDURE AddManholeConnection 'DROP PROCEDURE UpdateManholeConnection &DROP PROCEDURE WriteManholeConnection DROP PROCEDURE DeleteManhole &DROP PROCEDURE GetHouseConnectionByID DROP VIEW TVInsps COMMIT /ALTER TABLE ManholeConnection DROP StructureID COMMIT CREATE OR ALTER PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer, TVInspectionID integer, TypeID integer, TypeText varchar(256), Dim decimal(7,3), Height decimal(7,3), MaterialID integer, ConnPosition smallint, Comment varchar(40), Coord varchar(10), ChildStructureID integer, Descr varchar(40)) AS BEGIN SELECT I.StructureID, I.TVInspectionID, TypeID, ATX.FullText, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr FROM ManholeConnection MC INNER JOIN TVInspection I ON MC.TVInspectionID = I.TVInspectionID LEFT OUTER JOIN AbbrText ATX ON MC.TypeID = ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID = L.LanguageID AND L.IsActive = 1 WHERE MC.ManholeConnectionID = :ManholeConnectionID INTO :StructureID, :TVInspectionID, :TypeID, :TypeText, :Dim, :Height, :MaterialID, :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr; END nCREATE OR ALTER PROCEDURE WriteManholeConnection(ID integer, StructureID integer, TypeID integer, Dim decimal(7,3), Height decimal(7,3), MaterialID integer, ConnPosition smallint, Comment varchar(40), Coord varchar(10), ChildStructureID integer, Descr varchar(40)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; DECLARE VARIABLE TVInspectionID integer; BEGIN ManholeConnectionID = ID; IF (ManholeConnectionID = 0) THEN BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen, 1); END SELECT count(*) FROM Structure WHERE StructureID = :ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO ManholeConnection(ManholeConnectionID, TVInspectionID, TypeID, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr) VALUES(:ManholeConnectionID, :TVInspectionID, NULLIF(:TypeID, 0), :Dim, :Height, NULLIF(:MaterialID, 0), :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr); END CREATE PROCEDURE DeleteManhole(StructureID integer) AS BEGIN DELETE FROM Manhole WHERE StructureID=:StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); END _CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000), Comment2 varchar(1000), GroupingCode varchar(20), Surface varchar(20), StartManhole varchar(40), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, ParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, TV.VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, ResponsiblePersonCertificateNo, LocationDetails, FlowControlID, RenovationYear, SewerCategory, PreCleaningID, DrainageArea, InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, Comment1, Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, LSS.MasterStructureID, Ev.EventID, MC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID = LSS.StructureID AND (LSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN ManholeConnection MC ON MC.ChildStructureID = S.StructureID/* AND MC.StructureID = LSS.MasterStructureID*/ WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :ParentManholeConnectionID, :IsActive; END @IGNORE CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter decimal(6,2), EndMeter decimal(6,2), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, GroupingCode varchar(20), RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), UpperManhole varchar(40), LowerManhole varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(10,5), ProfileWidth decimal(10,5), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20), MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, Comment1 varchar(1000), Comment2 varchar(1000), StartMeter integer, EndMeter integer, GroupingCode varchar(20), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U decimal(5,2), RTI_D decimal(5,2), GTI_U decimal(5,2), GTI_D decimal(5,2), RTG_U decimal(5,2), RTG_D decimal(5,2), UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END 9@IGNORE CREATE OR ALTER PROCEDURE GetHouseConnectionByID CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER Varchar(30), NUMBER Varchar(40), CODEDIGIT Varchar(256), INSPDATE Date, STREET Varchar(40), STREETCODE Varchar(25), ZIP Varchar(10), CITY Varchar(40), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL Varchar(100), REVMANHOLE Varchar(30), CONNECTIONPOINT Varchar(40), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE Varchar(100), ORDERERPRESENT Varchar(100), CONTRACTORPRESENT Varchar(100), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT Decimal(10,5), PROFILEWIDTH Decimal(10,5), REACHLENGTH Decimal(6,2), JUDGEMENT Varchar(100), TIMEPOINT Timestamp, PICTUREQUALITY Varchar(20), VIDEOCOUNTER Varchar(10), VIDEOTAPE Varchar(10), SECTIONNO Varchar(10), RESPONSIBLEPERSON Varchar(30), SITEPLANNO Varchar(20), MUNICIPALCODE Varchar(10), DISTRICTNOID Integer, DISTRICTNO Varchar(10), CITYMAPPAGENO Varchar(10), STREETSURFACE Varchar(20), WEATHERID Integer, WEATHER Varchar(20), SEWERNO Varchar(20), SCALE Integer, PIPELENGTH Decimal(6,2), WALLTHICKNESS Decimal(10,5), WATERPROTECTIONZONE Varchar(40), POSITIONINSTREETID Integer, POSITIONINSTREET Varchar(40), SEWERAGEDISTRICT Varchar(40), ENDOFGUARANTEE Varchar(20), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE Varchar(30), TYPEOFSEALING Varchar(30), FLAG Varchar(10), INSPECTIONLENGTH Decimal(6,2), RESPONSIBLEPERSONCERTIFICATENO Varchar(15), LOCATIONDETAILS Varchar(255), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY Varchar(100), PRECLEANINGID Integer, DRAINAGEAREA Varchar(15), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 Varchar(1000), COMMENT2 Varchar(1000), GROUPINGCODE Varchar(20), STARTMANHOLE Varchar(40), DISTANCEFROMMANHOLE Decimal(6,2), PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END @IGNORE LCREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(40), CodeDigit varchar(256), InspDate date, Street varchar(40), StreetCode varchar(25), Zip varchar(10), City varchar(40), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(100), RevManhole varchar(30), ConnectionPoint varchar(40), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(100), OrdererPresent varchar(100), ContractorPresent varchar(100), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight decimal(6,2), ProfileWidth decimal(6,2), ReachLength decimal(6,2), Judgement varchar(100), Timepoint timestamp, PictureQuality varchar(20), VideoCounter varchar(10), VideoTape varchar(10), SectionNo varchar(10), ResponsiblePerson varchar(30), SitePlanNo varchar(20),MunicipalCode varchar(10), DistrictNoID integer, DistrictNo varchar(10), CityMapPageNo varchar(10), StreetSurface varchar(20), WeatherID integer, Weather varchar(20), SewerNo varchar(20), Scale integer, PipeLength decimal(6,2), WallThickness decimal(10,5), WaterProtectionZone varchar(40), PositionInStreetID integer, PositionInStreet varchar(40), SewerageDistrict varchar(40), EndOfGuarantee varchar(20), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(30), TypeOfSealing varchar(30), Flag varchar(10), InspectionLength decimal(6,2), ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(255), FlowControlID integer, RenovationYear integer, SewerCategory varchar(100), PreCleaningID integer, DrainageArea varchar(15), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(1000), Comment2 varchar(1000), GroupingCode varchar(20), Surface varchar(20), StartManhole varchar(40), DistanceFromManhole decimal(6,2), ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END /@IGNORE CREATE OR ALTER PROCEDURE WriteManhole 1@IGNORE CREATE OR ALTER PROCEDURE GetManholeByID CREATE OR ALTER TRIGGER AFTER_INSERT_ManholeStructure FOR ManholeStructure ACTIVE AFTER INSERT POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID = NEW.StructureID; END CREATE OR ALTER TRIGGER AFTER_UPDATE_ManholeStructure FOR ManholeStructure ACTIVE AFTER UPDATE POSITION 0 AS BEGIN UPDATE Structure SET ModificationDate = 'now' WHERE StructureID=OLD.StructureID; END @IGNORE PICO-232 START DROP VIEW Abbrs DROP VIEW JointPressEvents DROP VIEW JointPressInspsFull DROP VIEW TVInspsFull DROP VIEW TVEvents DROP VIEW ManholesFull DROP VIEW ReachesFull DROP VIEW HouseConnectionsFull DROP INDEX AbbrSet_idx DROP INDEX AbbrClass_idx DROP INDEX Abbr_idx DROP INDEX Preset_idx DROP INDEX Structure_Number_idx DROP INDEX Structure_Street_idx DROP INDEX LANGUAGE_IDX DROP INDEX UNIT_IDX DROP VIEW Abbrs2 EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$view_relations WHERE rdb$view_name = 'PANCAMINSPSFULL')) THEN EXECUTE STATEMENT 'DROP VIEW PANCAMINSPSFULL'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$view_relations WHERE rdb$view_name = 'REPORTSTRUCTURES')) THEN EXECUTE STATEMENT 'DROP VIEW REPORTSTRUCTURES'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$view_relations WHERE rdb$view_name = 'TVINSPS')) THEN EXECUTE STATEMENT 'DROP VIEW TVINSPS'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$procedures WHERE rdb$procedure_name = 'ADDPRESSUREINSP')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDPRESSUREINSP'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$procedures WHERE rdb$procedure_name = 'UPDATEPRESSUREINSP')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEPRESSUREINSP'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$procedures WHERE rdb$procedure_name = 'GETPANCAMINSPECTIONBYID')) THEN EXECUTE STATEMENT 'DROP PROCEDURE GETPANCAMINSPECTIONBYID'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM rdb$procedures WHERE rdb$procedure_name = 'SETSEWERMAPACTIVE')) THEN EXECUTE STATEMENT 'DROP PROCEDURE SETSEWERMAPACTIVE'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'ADDHOUSECONNECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDHOUSECONNECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'ADDINCLMEASUREMENT')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDINCLMEASUREMENT'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'ADDMANHOLECONNECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDMANHOLECONNECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'ADDPANCAMINSPECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDPANCAMINSPECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'ADDREACH')) THEN EXECUTE STATEMENT 'DROP PROCEDURE ADDREACH'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'UPDATEHOUSECONNECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEHOUSECONNECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'UPDATEINCLMEASUREMENT')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEINCLMEASUREMENT'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'UPDATEMANHOLECONNECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEMANHOLECONNECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'UPDATEPANCAMINSPECTION')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEPANCAMINSPECTION'; END EXECUTE BLOCK AS BEGIN IF (EXISTS(SELECT 1 FROM RDB$PROCEDURES WHERE RDB$PROCEDURE_NAME = 'UPDATEREACH')) THEN EXECUTE STATEMENT 'DROP PROCEDURE UPDATEREACH'; END $DROP PROCEDURE WriteInclMeasurement %DROP PROCEDURE WRITEMANHOLESTRUCTURE DROP PROCEDURE AddReport $DROP PROCEDURE GetTilesBySewerMapID "DROP PROCEDURE UpdateSewerMapTile DROP PROCEDURE AddSewerMapTile DROP PROCEDURE UpdateSewerMap DROP PROCEDURE AddSewerMap DROP PROCEDURE GetPresets DROP PROCEDURE AddPreset DROP PROCEDURE AddMeasurement $DROP PROCEDURE AddStructureParticle &DROP PROCEDURE GetInclMeasurementByID 'DROP PROCEDURE UpdatePipeStructureIncl 'DROP PROCEDURE UpdateScanCamInspection (DROP PROCEDURE GetScanCamInspectionByID $DROP PROCEDURE AddScanCamInspection %DROP PROCEDURE UpdatePipeStructureSC "DROP PROCEDURE UpdatePressureTest #DROP PROCEDURE GetPressureTestByID DROP PROCEDURE AddPressureTest !DROP PROCEDURE WritePressureInsp #DROP PROCEDURE GetPressureInspByID DROP PROCEDURE AddFilm &DROP PROCEDURE WriteManholeConnection (DROP PROCEDURE GetManholeConnectionByID DROP PROCEDURE UpdateEvent DROP PROCEDURE GetEventByID DROP PROCEDURE AddEvent $DROP PROCEDURE WriteHouseConnection &DROP PROCEDURE GetHouseConnectionByID DROP PROCEDURE FindReach DROP PROCEDURE WriteReach DROP PROCEDURE GetReachByID #DROP PROCEDURE UpdatePipeStructure DROP PROCEDURE GetManholeByID DROP PROCEDURE AddManhole DROP PROCEDURE UpdateManhole DROP PROCEDURE WriteManhole DROP PROCEDURE FindManhole DROP PROCEDURE UpdateProject DROP PROCEDURE AddProject DROP PROCEDURE UpdateCustomer DROP PROCEDURE FindCustomer DROP PROCEDURE AddCustomer DROP PROCEDURE AddRule DROP PROCEDURE AddWizardField DROP PROCEDURE AddWizard DROP PROCEDURE GetRule #DROP PROCEDURE AddSpecialAbbrClass DROP PROCEDURE SetAbbrPrefixes DROP PROCEDURE GetAbbrPrefixes +DROP PROCEDURE GetAvailableAbbrStageValues DROP PROCEDURE WriteEvent )DROP PROCEDURE ChangeReachFlowDirections (DROP PROCEDURE ChangeReachFlowDirection )DROP PROCEDURE ConditionallyCombineInsps DROP PROCEDURE ReverseEvents DROP PROCEDURE FindAbbr DROP PROCEDURE AbbrSetName DROP PROCEDURE AddAbbr DROP PROCEDURE UpdateAbbr DROP PROCEDURE FindUnit DROP PROCEDURE AddAbbrClass DROP PROCEDURE AddAbbrSet DROP PROCEDURE DBStat COMMIT DELETE FROM RDB$DEPENDENCIES WHERE rdb$dependent_name IN ('ABBRS', 'JOINTPRESSEVENTS', 'JOINTPRESSINSPSFULL', 'TVINSPSFULL', 'TVEVENTS', 'MANHOLESFULL', 'REACHESFULL', 'HOUSECONNECTIONSFULL', 'ABBRS2','PANCAMINSPSFULL', 'REPORTSTRUCTURES', 'TVINSPS', 'ADDPRESSUREINSP', 'UPDATEPRESSUREINSP', 'GETPANCAMINSPECTIONBYID', 'SETSEWERMAPACTIVE', 'ADDHOUSECONNECTION', 'ADDINCLMEASUREMENT', 'ADDMANHOLECONNECTION', 'ADDPANCAMINSPECTION', 'ADDREACH', 'UPDATEHOUSECONNECTION', 'UPDATEINCLMEASUREMENT', 'UPDATEMANHOLECONNECTION', 'UPDATEPANCAMINSPECTION', 'UPDATEREACH', 'WRITEINCLMEASUREMENT', 'WRITEMANHOLESTRUCTURE', 'ADDREPORT', 'GETTILESBYSEWERMAPID', 'UPDATESEWERMAPTILE', 'ADDSEWERMAPTILE', 'UPDATESEWERMAP', 'ADDSEWERMAP', 'GETPRESETS', 'ADDPRESET', 'ADDMEASUREMENT', 'ADDSTRUCTUREPARTICLE', 'GETINCLMEASUREMENTBYID', 'UPDATEPIPESTRUCTUREINCL', 'UPDATESCANCAMINSPECTION', 'GETSCANCAMINSPECTIONBYID', 'ADDSCANCAMINSPECTION', 'UPDATEPIPESTRUCTURESC', 'UPDATEPRESSURETEST', 'GETPRESSURETESTBYID', 'ADDPRESSURETEST', 'WRITEPRESSUREINSP', 'GETPRESSUREINSPBYID', 'ADDFILM', 'WRITEMANHOLECONNECTION', 'GETMANHOLECONNECTIONBYID', 'UPDATEEVENT', 'GETEVENTBYID', 'ADDEVENT', 'WRITEHOUSECONNECTION', 'GETHOUSECONNECTIONBYID', 'FINDREACH', 'WRITEREACH', 'GETREACHBYID', 'UPDATEPIPESTRUCTURE', 'GETMANHOLEBYID', 'ADDMANHOLE', 'UPDATEMANHOLE', 'WRITEMANHOLE', 'FINDMANHOLE', 'UPDATEPROJECT', 'ADDPROJECT', 'UPDATECUSTOMER', 'FINDCUSTOMER', 'ADDCUSTOMER', 'ADDRULE', 'ADDWIZARDFIELD', 'ADDWIZARD', 'GETRULE', 'ADDSPECIALABBRCLASS', 'SETABBRPREFIXES', 'GETABBRPREFIXES', 'GETAVAILABLEABBRSTAGEVALUES', 'WRITEEVENT', 'CHANGEREACHFLOWDIRECTIONS', 'CHANGEREACHFLOWDIRECTION', 'CONDITIONALLYCOMBINEINSPS', 'REVERSEEVENTS', 'FINDABBR', 'ABBRSETNAME', 'ADDABBR', 'UPDATEABBR', 'FINDUNIT', 'ADDABBRCLASS', 'ADDABBRSET', 'DBSTAT') -ALTER TABLE abbrclass ADD code2 varchar(256) 5ALTER TABLE abbrclasstext ADD fulltext2 varchar(256) GALTER TABLE abbrset ADD name2 varchar(256), ADD fullname2 varchar(256) HALTER TABLE abbrtext ADD code2 varchar(256), ADD fulltext2 varchar(256) ALTER TABLE customer ADD name2 varchar(256), ADD street2 varchar(256), ADD zip2 varchar(256), ADD city2 varchar(256), ADD land2 varchar(256), ADD tel2 varchar(256), ADD fax2 varchar(256) UALTER TABLE dynamicfield ADD fieldname2 varchar(256), ADD fieldnamelng2 varchar(256) <ALTER TABLE dynamicfieldvalue ADD stringvalue2 varchar(256) ALTER TABLE event ADD comment2 varchar(256), ADD internalpathlength2 float, ADD pathlength2 float, ADD measure12 float, ADD measure22 float, ADD manholepart2 varchar(256) yALTER TABLE film ADD mpegtype2 varchar(256), Add starttc2 varchar(100), add stoptc2 varchar(256), add flag2 varchar(256) .ALTER TABLE filmformat ADD name2 varchar(256) hALTER TABLE gpsdata ADD northing2 double precision, ADD easting2 double precision, ADD elevation2 float |ALTER TABLE houseconnection ADD revmanhole2 varchar(256), add distancefrommanhole2 float, add connectionpoint2 varchar(256) hALTER TABLE INCLMEASUREMENT ADD InspectionMode2 varchar(256), ADD OrdererPresent2 varchar(256), ADD ContractorPresent2 varchar(256), ADD Judgement2 varchar(256), ADD PictureQuality2 varchar(256), ADD VideoCounter2 varchar(256), ADD VideoTape2 varchar(256), ADD SectionNo2 varchar(256), ADD ResponsiblePerson2 varchar(256), ADD CityMapPageNo2 varchar(256), ADD StreetSurface2 varchar(256), ADD Weather2 varchar(256), ADD SewerNo2 varchar(256), ADD EndOfGuarantee2 varchar(256), ADD Queue2 varchar(256), ADD TypeOfSealing2 varchar(256), ADD Flag2 varchar(256), ADD InspectionLength2 float, ADD HeightDifference2 float sALTER TABLE JOINTPRESSURETEST ADD PathLength2 float, ADD InternalPathLength2 float, ADD InspectedTubeLength2 float DALTER TABLE LANGUAGE ADD Code2 varchar(256), ADD Name2 varchar(256) )ALTER TABLE LAYER ADD Name2 varchar(256) .ALTER TABLE LAYERIMAGE ADD Name2 varchar(256) 4ALTER TABLE LAYERTEXTELEMENT ADD Text2 varchar(256) ALTER TABLE MANHOLE ADD CoordX2 double precision, ADD CoordY2 double precision, ADD CoverHeight2 float, ADD BottomHeight2 float, ADD CoverDN2 float, ADD CoverWidth2 float, ADD ManhDN2 float, ADD ManhWidth2 float, ADD ManhLowerDN2 float, ADD ManhLowerWidth2 float, ADD ManhLowerHeight2 float, ADD DescendingHelpMaterial2 varchar(256), ADD PositionInStreet2 varchar(256), ADD WaterProtectionZone2 varchar(256) ALTER TABLE MANHOLECONNECTION ADD Dim2 float, ADD Height2 float, ADD Comment2 varchar(256), ADD Coord2 varchar(256), ADD Descr2 varchar(256) ALTER TABLE MANHOLESTRUCTURE ADD ManholeDepth2 float, ADD CoverlengthOrDN2 float, ADD CoverWidth2 float, ADD UpperLengthOrDN2 float, ADD UpperWidth2 float, ADD UpperHeight2 float, ADD LowerLengthOrDN2 float, ADD LowerWidth2 float, ADD LowerHeight2 float, ADD BottomLengthOrDN2 float, ADD BottomWidth2 float, ADD BottomHeight2 float, ADD UpperConeHeight2 float, ADD LowerConeHeight2 float 1ALTER TABLE PICTUREFORMAT ADD name2 varchar(256) JALTER TABLE PIPESTRUCTURE ADD ProfileHeight2 float, ADD ProfileWidth2 float, ADD ReachLength2 float, ADD SitePlanNo2 varchar(256), ADD MunicipalCode2 varchar(256), ADD DistrictNo2 varchar(256), ADD WaterProtectionZone2 varchar(256), ADD PositionInStreet2 varchar(256), ADD SewerageDistrict2 varchar(256), ADD WallThickness2 float {ALTER TABLE PREFIX ADD PrefixReach2 varchar(256), ADD PrefixHouseConnection2 varchar(256), ADD PrefixManhole2 varchar(256) HALTER TABLE PRESET ADD ControlKey2 varchar(256), ADD Text2 varchar(256) /ALTER TABLE PRESSUREINSPECTION ADD OrdererPresent2 varchar(256), ADD ContractorPresent2 varchar(256), ADD ResponsiblePerson2 varchar(256), ADD Weather2 varchar(256), ADD Device2 varchar(256), ADD Norm2 varchar(256), ADD NominalPressure2 float, ADD Reference2 float, ADD Volume2 float, ADD SurfaceArea2 float, ADD Flag2 varchar(256), ADD Comment12 varchar(256), ADD Comment22 varchar(256), ADD JobNo2 varchar(256), ADD InspectedTubeLength2 float, ADD TypeOfSealing2 varchar(256), ADD VideoTape2 varchar(256), ADD WaterLevel2 float, ADD SectionNo2 varchar(256) ALTER TABLE PRESSURETEST ADD DamageText2 varchar(256), ADD Comment2 varchar(256), ADD BalloonPressure2 float, ADD P1Start2 float, ADD P1End2 float yALTER TABLE PRESSURETESTDATA ADD NominalPressure2 float, ADD Reference2 float, ADD Volume2 float, ADD SurfaceArea2 float uALTER TABLE PRESSURETESTEDHOUSECONNECTION ADD ProfileHeight2 float, ADD ProfileWidth2 float, ADD TestedLength2 float ~ALTER TABLE PROJECT ADD OrderNr2 varchar(256), ADD OrderFor2 varchar(256), ADD ResponsPerson2 varchar(256), ADD ResponsPersonPhone2 varchar(256), ADD SearchKey2 varchar(256), ADD EstateArea2 varchar(256), ADD EstateNo2 varchar(256), ADD FileNo2 varchar(256), ADD ResponsScope2 varchar(256), ADD UserDesign2 varchar(256), ADD EstateIdentNo2 varchar(256), ADD Editing2 varchar(256), ADD RespAdmDept2 varchar(256), ADD TechnBoardOfControl2 varchar(256), ADD DeptNo2 varchar(256), ADD Comment2 varchar(256), ADD PictureNamePrefix2 varchar(256), ADD DefaultExporter2 varchar(256), ADD UniqueKey2 varchar(256), ADD RuleSourceFile2 varchar(256) ALTER TABLE REACH ADD StartMeter2 float, ADD EndMeter2 float, ADD RTI_U2 float, ADD RTI_D2 float, ADD GTI_U2 float, ADD GTI_D2 float, ADD RTG_U2 float, ADD RTG_D2 float 0ALTER TABLE REPORT ADD ReportType2 varchar(256) (ALTER TABLE RULE ADD Name2 varchar(256) MALTER TABLE SCANCAMINSPECTION ADD InspectionMode2 varchar(256), ADD OrdererPresent2 varchar(256), ADD ContractorPresent2 varchar(256), ADD Judgement2 varchar(256), ADD PictureQuality2 varchar(256), ADD VideoCounter2 varchar(256), ADD VideoTape2 varchar(256), ADD SectionNo2 varchar(256), ADD ResponsiblePerson2 varchar(256), ADD CityMapPageNo2 varchar(256), ADD StreetSurface2 varchar(256), ADD Weather2 varchar(256), ADD SewerNo2 varchar(256), ADD EndOfGuarantee2 varchar(256), ADD Queue2 varchar(256), ADD TypeOfSealing2 varchar(256), ADD Flag2 varchar(256), ADD InspectionLength2 float ALTER TABLE SEPARATOR ADD Description2 varchar(256), ADD Manufacturer2 varchar(256), ADD Model2 varchar(256), ADD NominalSize2 float VALTER TABLE SEWERMAP ADD LocationX2 double precision, ADD LocationY2 double precision 2ALTER TABLE SEWERMAPTILE ADD Format2 varchar(256) 4ALTER TABLE SPECIALABBRCLASS ADD Code2 varchar(256) <ALTER TABLE SPECIALABBRCLASSTEXT ADD FullText2 varchar(256) ALTER TABLE STRUCTURE ADD Number2 varchar(256), ADD CodeDigit2 varchar(256), ADD Street2 varchar(256), ADD StreetCode2 varchar(256), ADD ZIP2 varchar(256), ADD City2 varchar(256), ADD GroundWaterLevel2 varchar(256), ADD GroupingCode2 varchar(256) rALTER TABLE STRUCTUREPARTICLE ADD Dim12 float, ADD Dim22 float, ADD Dim32 float, ADD Dim42 float, ADD Dim52 float ALTER TABLE TVINSPECTION ADD InspectionMode2 varchar(256), ADD OrdererPresent2 varchar(256), ADD ContractorPresent2 varchar(256), ADD Judgement2 varchar(256), ADD PictureQuality2 varchar(256), ADD VideoCounter2 varchar(256), ADD VideoTape2 varchar(256), ADD SectionNo2 varchar(256), ADD ResponsiblePerson2 varchar(256), ADD CityMapPageNo2 varchar(256), ADD StreetSurface2 varchar(256), ADD Weather2 varchar(256), ADD SewerNo2 varchar(256), ADD EndOfGuarantee2 varchar(256), ADD Queue2 varchar(256), ADD TypeOfSealing2 varchar(256), ADD Flag2 varchar(256), ADD InspectionLength2 float, ADD ResponsiblePersonCertificateNo2 varchar(256), ADD LocationDetails2 varchar(256), ADD SewerCategory2 varchar(256), ADD DrainageArea2 varchar(256) (ALTER TABLE UNIT ADD Name2 varchar(256) *ALTER TABLE WIZARD ADD Name2 varchar(256) /ALTER TABLE WIZARDFIELD ADD Name2 varchar(256) COMMIT "UPDATE abbrclass SET code2 = code .UPDATE abbrclasstext SET fulltext2 = fulltext 6UPDATE abbrset SET name2 = name, fullname2 = fullname 7UPDATE abbrtext SET code2 = code, fulltext2 = fulltext sUPDATE customer SET name2 = name, street2 = street, zip2 = zip, city2 = city, land2 = land, tel2 = tel, fax2 = fax MUPDATE dynamicfield SET fieldname2 = fieldname, fieldnamelng2 = fieldnamelng 8UPDATE dynamicfieldvalue SET stringvalue2 = stringvalue UPDATE event SET comment2 = comment, internalpathlength2 = internalpathlength, pathlength2 = pathlength, measure12 = measure1, measure22 = measure2, manholepart2 = manholepart YUPDATE film SET mpegtype2 = mpegtype, starttc2 = starttc, stoptc2 = stoptc, flag2 = flag #UPDATE filmformat SET name2 = name TUPDATE gpsdata SET northing2 = northing, easting2 = easting, elevation2 = elevation UPDATE houseconnection SET revmanhole2 = revmanhole, distancefrommanhole2 = distancefrommanhole, connectionpoint2 = connectionpoint 8UPDATE INCLMEASUREMENT SET InspectionMode2 = InspectionMode,OrdererPresent2 = OrdererPresent,ContractorPresent2 = ContractorPresent,Judgement2 = Judgement,PictureQuality2 = PictureQuality,VideoCounter2 = VideoCounter,VideoTape2 = VideoTape,SectionNo2 = SectionNo,ResponsiblePerson2 = ResponsiblePerson,CityMapPageNo2 = CityMapPageNo,StreetSurface2 = StreetSurface,Weather2 = Weather,SewerNo2 = SewerNo,EndOfGuarantee2 = EndOfGuarantee,Queue2 = Queue,TypeOfSealing2 = TypeOfSealing,Flag2 = Flag,InspectionLength2 = InspectionLength,HeightDifference2 = HeightDifference UPDATE JOINTPRESSURETEST SET PathLength2 = PathLength,InternalPathLength2 = InternalPathLength,InspectedTubeLength2 = InspectedTubeLength .UPDATE LANGUAGE SET Code2 = Code,Name2 = Name UPDATE LAYER SET Name2 = Name #UPDATE LAYERIMAGE SET Name2 = Name )UPDATE LAYERTEXTELEMENT SET Text2 = Text UPDATE MANHOLE SET CoordX2 = CoordX,CoordY2 = CoordY,CoverHeight2 = CoverHeight,BottomHeight2 = BottomHeight,CoverDN2 = CoverDN,CoverWidth2 = CoverWidth,ManhDN2 = ManhDN,ManhWidth2 = ManhWidth,ManhLowerDN2 = ManhLowerDN,ManhLowerWidth2 = ManhLowerWidth,ManhLowerHeight2 = ManhLowerHeight,DescendingHelpMaterial2 = DescendingHelpMaterial,PositionInStreet2 = PositionInStreet,WaterProtectionZone2 = WaterProtectionZone jUPDATE MANHOLECONNECTION SET Dim2 = Dim,Height2 = Height,Comment2 = Comment,Coord2 = Coord,Descr2 = Descr UPDATE MANHOLESTRUCTURE SET ManholeDepth2 = ManholeDepth,CoverlengthOrDN2 = CoverlengthOrDN,CoverWidth2 = CoverWidth,UpperLengthOrDN2 = UpperLengthOrDN,UpperWidth2 = UpperWidth,UpperHeight2 = UpperHeight,LowerLengthOrDN2 = LowerLengthOrDN,LowerWidth2 = LowerWidth,LowerHeight2 = LowerHeight,BottomLengthOrDN2 = BottomLengthOrDN,BottomWidth2 = BottomWidth,BottomHeight2 = BottomHeight,UpperConeHeight2 = UpperConeHeight,LowerConeHeight2 = LowerConeHeight &UPDATE PICTUREFORMAT SET name2 = name UUPDATE PIPESTRUCTURE SET ProfileHeight2 = ProfileHeight,ProfileWidth2 = ProfileWidth,ReachLength2 = ReachLength,SitePlanNo2 = SitePlanNo,MunicipalCode2 = MunicipalCode,DistrictNo2 = DistrictNo,WaterProtectionZone2 = WaterProtectionZone,PositionInStreet2 = PositionInStreet,SewerageDistrict2 = SewerageDistrict,WallThickness2 = WallThickness {UPDATE PREFIX SET PrefixReach2 = PrefixReach,PrefixHouseConnection2 = PrefixHouseConnection,PrefixManhole2 = PrefixManhole 8UPDATE PRESET SET ControlKey2 = ControlKey,Text2 = Text UPDATE PRESSUREINSPECTION SET OrdererPresent2 = OrdererPresent,ContractorPresent2 = ContractorPresent,ResponsiblePerson2 = ResponsiblePerson,Weather2 = Weather,Device2 = Device,Norm2 = Norm,NominalPressure2 = NominalPressure,Reference2 = Reference,Volume2 = Volume,SurfaceArea2 = SurfaceArea,Flag2 = Flag,Comment12 = Comment1,Comment22 = Comment2,JobNo2 = JobNo,InspectedTubeLength2 = InspectedTubeLength,TypeOfSealing2 = TypeOfSealing,VideoTape2 = VideoTape,WaterLevel2 = WaterLevel,SectionNo2 = SectionNo UPDATE PRESSURETEST SET DamageText2 = DamageText,Comment2 = Comment,BalloonPressure2 = BalloonPressure,P1Start2 = P1Start,P1End2 = P1End UPDATE PRESSURETESTDATA SET NominalPressure2 = NominalPressure,Reference2 = Reference,Volume2 = Volume,SurfaceArea2 = SurfaceArea UPDATE PRESSURETESTEDHOUSECONNECTION SET ProfileHeight2 = ProfileHeight,ProfileWidth2 = ProfileWidth,TestedLength2 = TestedLength -UPDATE PROJECT SET OrderNr2 = OrderNr,OrderFor2 = OrderFor,ResponsPerson2 = ResponsPerson,ResponsPersonPhone2 = ResponsPersonPhone,SearchKey2 = SearchKey,EstateArea2 = EstateArea,EstateNo2 = EstateNo,FileNo2 = FileNo,ResponsScope2 = ResponsScope,UserDesign2 = UserDesign,EstateIdentNo2 = EstateIdentNo,Editing2 = Editing,RespAdmDept2 = RespAdmDept,TechnBoardOfControl2 = TechnBoardOfControl,DeptNo2 = DeptNo,Comment2 = Comment,PictureNamePrefix2 = PictureNamePrefix,DefaultExporter2 = DefaultExporter,UniqueKey2 = UniqueKey,RuleSourceFile2 = RuleSourceFile UPDATE REACH SET StartMeter2 = StartMeter,EndMeter2 = EndMeter,RTI_U2 = RTI_U,RTI_D2 = RTI_D,GTI_U2 = GTI_U,GTI_D2 = GTI_D,RTG_U2 = RTG_U,RTG_D2 = RTG_D +UPDATE REPORT SET ReportType2 = ReportType UPDATE RULE SET Name2 = Name UPDATE SCANCAMINSPECTION SET InspectionMode2 = InspectionMode,OrdererPresent2 = OrdererPresent,ContractorPresent2 = ContractorPresent,Judgement2 = Judgement,PictureQuality2 = PictureQuality,VideoCounter2 = VideoCounter,VideoTape2 = VideoTape,SectionNo2 = SectionNo,ResponsiblePerson2 = ResponsiblePerson,CityMapPageNo2 = CityMapPageNo,StreetSurface2 = StreetSurface,Weather2 = Weather,SewerNo2 = SewerNo,EndOfGuarantee2 = EndOfGuarantee,Queue2 = Queue,TypeOfSealing2 = TypeOfSealing,Flag2 = Flag,InspectionLength2 = InspectionLength wUPDATE SEPARATOR SET Description2 = Description,Manufacturer2 = Manufacturer,Model2 = Model,NominalSize2 = NominalSize BUPDATE SEWERMAP SET LocationX2 = LocationX,LocationY2 = LocationY )UPDATE SEWERMAPTILE SET Format2 = Format )UPDATE SPECIALABBRCLASS SET Code2 = Code 5UPDATE SPECIALABBRCLASSTEXT SET FullText2 = FullText UPDATE STRUCTURE SET Number2 = Number,CodeDigit2 = CodeDigit,Street2 = Street,StreetCode2 = StreetCode,ZIP2 = ZIP,City2 = City,GroundWaterLevel2 = GroundWaterLevel,GroupingCode2 = GroupingCode ^UPDATE STRUCTUREPARTICLE SET Dim12 = Dim1,Dim22 = Dim2,Dim32 = Dim3,Dim42 = Dim4,Dim52 = Dim5 UPDATE TVINSPECTION SET InspectionMode2 = InspectionMode,OrdererPresent2 = OrdererPresent,ContractorPresent2 = ContractorPresent,Judgement2 = Judgement,PictureQuality2 = PictureQuality,VideoCounter2 = VideoCounter,VideoTape2 = VideoTape,SectionNo2 = SectionNo,ResponsiblePerson2 = ResponsiblePerson,CityMapPageNo2 = CityMapPageNo,StreetSurface2 = StreetSurface,Weather2 = Weather,SewerNo2 = SewerNo,EndOfGuarantee2 = EndOfGuarantee,Queue2 = Queue,TypeOfSealing2 = TypeOfSealing,Flag2 = Flag,InspectionLength2 = InspectionLength,ResponsiblePersonCertificateNo2 = ResponsiblePersonCertificateNo,LocationDetails2 = LocationDetails,SewerCategory2 = SewerCategory,DrainageArea2 = DrainageArea UPDATE UNIT SET Name2 = Name UPDATE WIZARD SET Name2 = Name $UPDATE WIZARDFIELD SET Name2 = Name ALTER TABLE abbrclass DROP code COMMIT (ALTER TABLE abbrclasstext DROP fulltext -ALTER TABLE abbrset DROP name, DROP fullname .ALTER TABLE abbrtext DROP code, drop fulltext COMMIT `ALTER TABLE customer DROP name, drop street, drop zip, drop city, drop land, drop tel, drop fax ;ALTER TABLE dynamicfield DROP fieldname, drop fieldnamelng /ALTER TABLE dynamicfieldvalue DROP stringvalue yALTER TABLE event DROP comment, drop internalpathlength, drop pathlength, drop measure1, drop measure2, drop manholepart EALTER TABLE film DROP mpegtype, drop starttc, drop stoptc, drop flag !ALTER TABLE filmformat DROP name @ALTER TABLE gpsdata DROP northing, drop easting, drop elevation \ALTER TABLE houseconnection DROP revmanhole, drop distancefrommanhole, drop connectionpoint ALTER TABLE INCLMEASUREMENT DROP InspectionMode, DROP OrdererPresent, DROP ContractorPresent, DROP Judgement, DROP PictureQuality, DROP VideoCounter, DROP VideoTape, DROP SectionNo, DROP ResponsiblePerson, DROP CityMapPageNo, DROP StreetSurface, DROP Weather, DROP SewerNo, DROP EndOfGuarantee, DROP Queue, DROP TypeOfSealing, DROP Flag, DROP InspectionLength, DROP HeightDifference aALTER TABLE JOINTPRESSURETEST DROP PathLength, DROP InternalPathLength, DROP InspectedTubeLength *ALTER TABLE LANGUAGE DROP Code, DROP Name COMMIT ALTER TABLE LAYER DROP Name !ALTER TABLE LAYERIMAGE DROP Name 'ALTER TABLE LAYERTEXTELEMENT DROP Text ALTER TABLE MANHOLE DROP CoordX, DROP CoordY, DROP CoverHeight, DROP BottomHeight, DROP CoverDN, DROP CoverWidth, DROP ManhDN, DROP ManhWidth, DROP ManhLowerDN, DROP ManhLowerWidth, DROP ManhLowerHeight, DROP DescendingHelpMaterial, DROP PositionInStreet, DROP WaterProtectionZone ZALTER TABLE MANHOLECONNECTION DROP Dim, DROP Height, DROP Comment, DROP Coord, DROP Descr 0ALTER TABLE MANHOLESTRUCTURE DROP ManholeDepth, DROP CoverlengthOrDN, DROP CoverWidth, DROP UpperLengthOrDN, DROP UpperWidth, DROP UpperHeight, DROP LowerLengthOrDN, DROP LowerWidth, DROP LowerHeight, DROP BottomLengthOrDN, DROP BottomWidth, DROP BottomHeight, DROP UpperConeHeight, DROP LowerConeHeight $ALTER TABLE PICTUREFORMAT DROP name ALTER TABLE PIPESTRUCTURE DROP ProfileHeight, DROP ProfileWidth, DROP ReachLength, DROP SitePlanNo, DROP MunicipalCode, DROP DistrictNo, DROP WaterProtectionZone, DROP PositionInStreet, DROP SewerageDistrict, DROP WallThickness TALTER TABLE PREFIX DROP PrefixReach, DROP PrefixHouseConnection, DROP PrefixManhole .ALTER TABLE PRESET DROP ControlKey, DROP Text bALTER TABLE PRESSUREINSPECTION DROP OrdererPresent, DROP ContractorPresent, DROP ResponsiblePerson, DROP Weather, DROP Device, DROP Norm, DROP NominalPressure, DROP Reference, DROP Volume, DROP SurfaceArea, DROP Flag, DROP Comment1, DROP Comment2, DROP JobNo, DROP InspectedTubeLength, DROP TypeOfSealing, DROP VideoTape, DROP WaterLevel, DROP SectionNo gALTER TABLE PRESSURETEST DROP DamageText, DROP Comment, DROP BalloonPressure, DROP P1Start, DROP P1End aALTER TABLE PRESSURETESTDATA DROP NominalPressure, DROP Reference, DROP Volume, DROP SurfaceArea cALTER TABLE PRESSURETESTEDHOUSECONNECTION DROP ProfileHeight, DROP ProfileWidth, DROP TestedLength zALTER TABLE PROJECT DROP OrderNr, DROP OrderFor, DROP ResponsPerson, DROP ResponsPersonPhone, DROP SearchKey, DROP EstateArea, DROP EstateNo, DROP FileNo, DROP ResponsScope, DROP UserDesign, DROP EstateIdentNo, DROP Editing, DROP RespAdmDept, DROP TechnBoardOfControl, DROP DeptNo, DROP Comment, DROP PictureNamePrefix, DROP DefaultExporter, DROP UniqueKey, DROP RuleSourceFile yALTER TABLE REACH DROP StartMeter, DROP EndMeter, DROP RTI_U, DROP RTI_D, DROP GTI_U, DROP GTI_D, DROP RTG_U, DROP RTG_D #ALTER TABLE REPORT DROP ReportType ALTER TABLE RULE DROP Name jALTER TABLE SCANCAMINSPECTION DROP InspectionMode, DROP OrdererPresent, DROP ContractorPresent, DROP Judgement, DROP PictureQuality, DROP VideoCounter, DROP VideoTape, DROP SectionNo, DROP ResponsiblePerson, DROP CityMapPageNo, DROP StreetSurface, DROP Weather, DROP SewerNo, DROP EndOfGuarantee, DROP Queue, DROP TypeOfSealing, DROP Flag, DROP InspectionLength XALTER TABLE SEPARATOR DROP Description, DROP Manufacturer, DROP Model, DROP NominalSize 4ALTER TABLE SEWERMAP DROP LocationX, DROP LocationY %ALTER TABLE SEWERMAPTILE DROP Format 'ALTER TABLE SPECIALABBRCLASS DROP Code COMMIT /ALTER TABLE SPECIALABBRCLASSTEXT DROP FullText ALTER TABLE STRUCTURE DROP Number, DROP CodeDigit, DROP Street, DROP StreetCode, DROP ZIP, DROP City, DROP GroundWaterLevel, DROP GroupingCode TALTER TABLE STRUCTUREPARTICLE DROP Dim1, DROP Dim2, DROP Dim3, DROP Dim4, DROP Dim5 ALTER TABLE TVINSPECTION DROP InspectionMode, DROP OrdererPresent, DROP ContractorPresent, DROP Judgement, DROP PictureQuality, DROP VideoCounter, DROP VideoTape, DROP SectionNo, DROP ResponsiblePerson, DROP CityMapPageNo, DROP StreetSurface, DROP Weather, DROP SewerNo, DROP EndOfGuarantee, DROP Queue, DROP TypeOfSealing, DROP Flag, DROP InspectionLength, DROP ResponsiblePersonCertificateNo, DROP LocationDetails, DROP SewerCategory, DROP DrainageArea ALTER TABLE UNIT DROP Name ALTER TABLE WIZARD DROP Name "ALTER TABLE WIZARDFIELD DROP Name *ALTER TABLE abbrclass ALTER code2 TO code 6ALTER TABLE abbrclasstext ALTER fulltext2 TO fulltext EALTER TABLE abbrset ALTER name2 TO name, ALTER fullname2 TO fullname FALTER TABLE abbrtext ALTER code2 TO code, ALTER fulltext2 TO fulltext ALTER TABLE customer ALTER name2 TO name, ALTER street2 TO street, ALTER zip2 TO zip, ALTER city2 TO city, ALTER land2 TO land, ALTER tel2 TO tel, ALTER fax2 TO fax \ALTER TABLE dynamicfield ALTER fieldname2 TO fieldname, ALTER fieldnamelng2 TO fieldnamelng @ALTER TABLE dynamicfieldvalue ALTER stringvalue2 TO stringvalue ALTER TABLE event ALTER comment2 TO comment, ALTER internalpathlength2 TO internalpathlength, ALTER pathlength2 TO pathlength, ALTER measure12 TO measure1, ALTER measure22 TO measure2, ALTER manholepart2 TO manholepart vALTER TABLE film ALTER mpegtype2 TO mpegtype, alter starttc2 to starttc, alter stoptc2 to stoptc, alter flag2 to flag +ALTER TABLE filmformat ALTER name2 TO name jALTER TABLE gpsdata ALTER northing2 TO northing, alter easting2 to easting, alter elevation2 to elevation ALTER TABLE houseconnection ALTER revmanhole2 TO revmanhole, alter distancefrommanhole2 to distancefrommanhole, alter connectionpoint2 to connectionpoint ALTER TABLE INCLMEASUREMENT ALTER InspectionMode2 TO InspectionMode, ALTER OrdererPresent2 TO OrdererPresent, ALTER ContractorPresent2 TO ContractorPresent, ALTER Judgement2 TO Judgement, ALTER PictureQuality2 TO PictureQuality, ALTER VideoCounter2 TO VideoCounter, ALTER VideoTape2 TO VideoTape, ALTER SectionNo2 TO SectionNo, ALTER ResponsiblePerson2 TO ResponsiblePerson, ALTER CityMapPageNo2 TO CityMapPageNo, ALTER StreetSurface2 TO StreetSurface, ALTER Weather2 TO Weather, ALTER SewerNo2 TO SewerNo, ALTER EndOfGuarantee2 TO EndOfGuarantee, ALTER Queue2 TO Queue, ALTER TypeOfSealing2 TO TypeOfSealing, ALTER Flag2 TO Flag, ALTER InspectionLength2 TO InspectionLength, ALTER HeightDifference2 TO HeightDifference ALTER TABLE JOINTPRESSURETEST ALTER PathLength2 TO PathLength, ALTER InternalPathLength2 TO InternalPathLength, ALTER InspectedTubeLength2 TO InspectedTubeLength >ALTER TABLE LANGUAGE ALTER Code2 TO Code, ALTER Name2 TO Name &ALTER TABLE LAYER ALTER Name2 TO Name +ALTER TABLE LAYERIMAGE ALTER Name2 TO Name 1ALTER TABLE LAYERTEXTELEMENT ALTER Text2 TO Text ALTER TABLE MANHOLE ALTER CoordX2 TO CoordX, ALTER CoordY2 TO CoordY, ALTER CoverHeight2 TO CoverHeight, ALTER BottomHeight2 TO BottomHeight, ALTER CoverDN2 TO CoverDN, ALTER CoverWidth2 TO CoverWidth, ALTER ManhDN2 TO ManhDN, ALTER ManhWidth2 TO ManhWidth, ALTER ManhLowerDN2 TO ManhLowerDN, ALTER ManhLowerWidth2 TO ManhLowerWidth, ALTER ManhLowerHeight2 TO ManhLowerHeight, ALTER DescendingHelpMaterial2 TO DescendingHelpMaterial, ALTER PositionInStreet2 TO PositionInStreet, ALTER WaterProtectionZone2 TO WaterProtectionZone ALTER TABLE MANHOLECONNECTION ALTER Dim2 TO Dim, ALTER Height2 TO Height, ALTER Comment2 TO Comment, ALTER Coord2 TO Coord, ALTER Descr2 TO Descr 6ALTER TABLE MANHOLESTRUCTURE ALTER ManholeDepth2 TO ManholeDepth, ALTER CoverlengthOrDN2 TO CoverlengthOrDN, ALTER CoverWidth2 TO CoverWidth, ALTER UpperLengthOrDN2 TO UpperLengthOrDN, ALTER UpperWidth2 TO UpperWidth, ALTER UpperHeight2 TO UpperHeight, ALTER LowerLengthOrDN2 TO LowerLengthOrDN, ALTER LowerWidth2 TO LowerWidth, ALTER LowerHeight2 TO LowerHeight, ALTER BottomLengthOrDN2 TO BottomLengthOrDN, ALTER BottomWidth2 TO BottomWidth, ALTER BottomHeight2 TO BottomHeight, ALTER UpperConeHeight2 TO UpperConeHeight, ALTER LowerConeHeight2 TO LowerConeHeight .ALTER TABLE PICTUREFORMAT ALTER name2 TO name ALTER TABLE PIPESTRUCTURE ALTER ProfileHeight2 TO ProfileHeight, ALTER ProfileWidth2 TO ProfileWidth, ALTER ReachLength2 TO ReachLength, ALTER SitePlanNo2 TO SitePlanNo, ALTER MunicipalCode2 TO MunicipalCode, ALTER DistrictNo2 TO DistrictNo, ALTER WaterProtectionZone2 TO WaterProtectionZone, ALTER PositionInStreet2 TO PositionInStreet, ALTER SewerageDistrict2 TO SewerageDistrict, ALTER WallThickness2 TO WallThickness ALTER TABLE PREFIX ALTER PrefixReach2 TO PrefixReach, ALTER PrefixHouseConnection2 TO PrefixHouseConnection, ALTER PrefixManhole2 TO PrefixManhole HALTER TABLE PRESET ALTER ControlKey2 TO ControlKey, ALTER Text2 TO Text ALTER TABLE PRESSUREINSPECTION ALTER OrdererPresent2 TO OrdererPresent, ALTER ContractorPresent2 TO ContractorPresent, ALTER ResponsiblePerson2 TO ResponsiblePerson, ALTER Weather2 TO Weather, ALTER Device2 TO Device, ALTER Norm2 TO Norm, ALTER NominalPressure2 TO NominalPressure, ALTER Reference2 TO Reference, ALTER Volume2 TO Volume, ALTER SurfaceArea2 TO SurfaceArea, ALTER Flag2 TO Flag, ALTER Comment12 TO Comment1, ALTER Comment22 TO Comment2, ALTER JobNo2 TO JobNo, ALTER InspectedTubeLength2 TO InspectedTubeLength, ALTER TypeOfSealing2 TO TypeOfSealing, ALTER VideoTape2 TO VideoTape, ALTER WaterLevel2 TO WaterLevel, ALTER SectionNo2 TO SectionNo ALTER TABLE PRESSURETEST ALTER DamageText2 TO DamageText, ALTER Comment2 TO Comment, ALTER BalloonPressure2 TO BalloonPressure, ALTER P1Start2 TO P1Start, ALTER P1End2 TO P1End ALTER TABLE PRESSURETESTDATA ALTER NominalPressure2 TO NominalPressure, ALTER Reference2 TO Reference, ALTER Volume2 TO Volume, ALTER SurfaceArea2 TO SurfaceArea ALTER TABLE PRESSURETESTEDHOUSECONNECTION ALTER ProfileHeight2 TO ProfileHeight, ALTER ProfileWidth2 TO ProfileWidth, ALTER TestedLength2 TO TestedLength ALTER TABLE PROJECT ALTER OrderNr2 TO OrderNr, ALTER OrderFor2 TO OrderFor, ALTER ResponsPerson2 TO ResponsPerson, ALTER ResponsPersonPhone2 TO ResponsPersonPhone, ALTER SearchKey2 TO SearchKey, ALTER EstateArea2 TO EstateArea, ALTER EstateNo2 TO EstateNo, ALTER FileNo2 TO FileNo, ALTER ResponsScope2 TO ResponsScope, ALTER UserDesign2 TO UserDesign, ALTER EstateIdentNo2 TO EstateIdentNo, ALTER Editing2 TO Editing, ALTER RespAdmDept2 TO RespAdmDept, ALTER TechnBoardOfControl2 TO TechnBoardOfControl, ALTER DeptNo2 TO DeptNo, ALTER Comment2 TO Comment, ALTER PictureNamePrefix2 TO PictureNamePrefix, ALTER DefaultExporter2 TO DefaultExporter, ALTER UniqueKey2 TO UniqueKey, ALTER RuleSourceFile2 TO RuleSourceFile ALTER TABLE REACH ALTER StartMeter2 TO StartMeter, ALTER EndMeter2 TO EndMeter, ALTER RTI_U2 TO RTI_U, ALTER RTI_D2 TO RTI_D, ALTER GTI_U2 TO GTI_U, ALTER GTI_D2 TO GTI_D, ALTER RTG_U2 TO RTG_U, ALTER RTG_D2 TO RTG_D 3ALTER TABLE REPORT ALTER ReportType2 TO ReportType %ALTER TABLE RULE ALTER Name2 TO Name ALTER TABLE SCANCAMINSPECTION ALTER InspectionMode2 TO InspectionMode, ALTER OrdererPresent2 TO OrdererPresent, ALTER ContractorPresent2 TO ContractorPresent, ALTER Judgement2 TO Judgement, ALTER PictureQuality2 TO PictureQuality, ALTER VideoCounter2 TO VideoCounter, ALTER VideoTape2 TO VideoTape, ALTER SectionNo2 TO SectionNo, ALTER ResponsiblePerson2 TO ResponsiblePerson, ALTER CityMapPageNo2 TO CityMapPageNo, ALTER StreetSurface2 TO StreetSurface, ALTER Weather2 TO Weather, ALTER SewerNo2 TO SewerNo, ALTER EndOfGuarantee2 TO EndOfGuarantee, ALTER Queue2 TO Queue, ALTER TypeOfSealing2 TO TypeOfSealing, ALTER Flag2 TO Flag, ALTER InspectionLength2 TO InspectionLength ALTER TABLE SEPARATOR ALTER Description2 TO Description, ALTER Manufacturer2 TO Manufacturer, ALTER Model2 TO Model, ALTER NominalSize2 TO NominalSize RALTER TABLE SEWERMAP ALTER LocationX2 TO LocationX, ALTER LocationY2 TO LocationY 1ALTER TABLE SEWERMAPTILE ALTER Format2 TO Format 1ALTER TABLE SPECIALABBRCLASS ALTER Code2 TO Code =ALTER TABLE SPECIALABBRCLASSTEXT ALTER FullText2 TO FullText ALTER TABLE STRUCTURE ALTER Number2 TO Number, ALTER CodeDigit2 TO CodeDigit, ALTER Street2 TO Street, ALTER StreetCode2 TO StreetCode, ALTER ZIP2 TO ZIP, ALTER City2 TO City, ALTER GroundWaterLevel2 TO GroundWaterLevel, ALTER GroupingCode2 TO GroupingCode ALTER TABLE STRUCTUREPARTICLE ALTER Dim12 TO Dim1, ALTER Dim22 TO Dim2, ALTER Dim32 TO Dim3, ALTER Dim42 TO Dim4, ALTER Dim52 TO Dim5 `ALTER TABLE TVINSPECTION ALTER InspectionMode2 TO InspectionMode, ALTER OrdererPresent2 TO OrdererPresent, ALTER ContractorPresent2 TO ContractorPresent, ALTER Judgement2 TO Judgement, ALTER PictureQuality2 TO PictureQuality, ALTER VideoCounter2 TO VideoCounter, ALTER VideoTape2 TO VideoTape, ALTER SectionNo2 TO SectionNo, ALTER ResponsiblePerson2 TO ResponsiblePerson, ALTER CityMapPageNo2 TO CityMapPageNo, ALTER StreetSurface2 TO StreetSurface, ALTER Weather2 TO Weather, ALTER SewerNo2 TO SewerNo, ALTER EndOfGuarantee2 TO EndOfGuarantee, ALTER Queue2 TO Queue, ALTER TypeOfSealing2 TO TypeOfSealing, ALTER Flag2 TO Flag, ALTER InspectionLength2 TO InspectionLength, ALTER ResponsiblePersonCertificateNo2 TO ResponsiblePersonCertificateNo, ALTER LocationDetails2 TO LocationDetails, ALTER SewerCategory2 TO SewerCategory, ALTER DrainageArea2 TO DrainageArea %ALTER TABLE UNIT ALTER Name2 TO Name 'ALTER TABLE WIZARD ALTER Name2 TO Name ,ALTER TABLE WIZARDFIELD ALTER Name2 TO Name COMMIT CREATE OR ALTER PROCEDURE AddAbbrSet (Name varchar(256), FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN SELECT AbbrSetID FROM AbbrSet INTO :AbbrSetID; IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen, 1); INSERT INTO AbbrSet(AbbrSetID,Name, FullName) VALUES(:AbbrSetID, :Name, :FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET FullName = :FullName WHERE AbbrSetID = :AbbrSetID; END END END ECREATE OR ALTER PROCEDURE AddAbbrClass (AbbrSet varchar(256), Code varchar(256), FullText varchar(256), LanguageID integer) RETURNS (AbbrClassID integer) AS DECLARE VARIABLE AbbrSetID integer; DECLARE VARIABLE CurrClassName varchar(256); BEGIN EXECUTE PROCEDURE AddAbbrSet(AbbrSet, '') RETURNING_VALUES(:AbbrSetID); SELECT ACT.AbbrClassID, ACT.FullText FROM AbbrClassText ACT INNER JOIN AbbrClass AC ON ACT.AbbrClassID = AC.AbbrClassID INNER JOIN AbbrSet ASet ON AC.AbbrSetID = ASet.AbbrSetID WHERE Code = :Code AND LanguageID = :LanguageID INTO :AbbrClassID, :CurrClassName; IF (:AbbrClassID IS NULL) THEN BEGIN AbbrClassID = GEN_ID(AbbrClass_gen, 1); INSERT INTO AbbrClass(AbbrClassID, AbbrSetID, Code) VALUES(:AbbrClassID, :AbbrSetID, :Code); INSERT INTO AbbrClassText(AbbrClassID, LanguageID, FullText) VALUES(:AbbrClassID, :LanguageID, :FullText); END ELSE BEGIN IF ((:FullText IS NOT NULL) AND (:FullText <> :CurrClassName)) THEN BEGIN UPDATE AbbrClassText SET FullText = :FullText WHERE AbbrClassID = :AbbrClassID AND LanguageID = :LanguageID; END END END 9CREATE OR ALTER PROCEDURE FindUnit(Name varchar(256)) RETURNS (UnitID integer) AS BEGIN SELECT First 1 UnitID FROM Unit WHERE Name = :Name INTO :UnitID; IF ((:UnitID IS NULL) AND (:Name IS NOT NULL)) THEN BEGIN UnitID = GEN_ID(Unit_gen, 1); INSERT INTO Unit(UnitID, Name) VALUES (:UnitID, :Name); END END )CREATE OR ALTER PROCEDURE UpdateAbbr (AbbrID integer, LanguageID integer, Code varchar(256), FullText varchar(256), Unit1 varchar(256), Unit2 varchar(256), RevCode varchar(256), QuickAccess smallint, IsDefault smallint, AdditionalCodeCategory varchar(256)) AS DECLARE VARIABLE ClassID integer; DECLARE VARIABLE AdditionalClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); SELECT AbbrClassID FROM AbbrClass WHERE Code = :AdditionalCodeCategory INTO :AdditionalClassID; UPDATE Abbr SET Unit1 = :Unit1ID, Unit2 = :Unit2ID, IsQuickAccess = :QuickAccess, AdditionalCodeCategoryID = :AdditionalClassID WHERE AbbrID = :AbbrID; UPDATE AbbrText SET Code = :Code, FullText = :FullText WHERE AbbrID = :AbbrID AND LanguageID = :LanguageID; SELECT AbbrClassID FROM Abbr WHERE AbbrID = :AbbrID INTO :ClassID; /*updating IsDefault for the whole category*/ IF (IsDefault > 0) THEN BEGIN UPDATE Abbr SET IsDefault = 0 WHERE AbbrClassID = :ClassID; UPDATE Abbr SET IsDefault = :IsDefault WHERE AbbrID = :AbbrID; END /*searching for reverse code*/ DELETE FROM RevAbbr WHERE AbbrID = :AbbrID OR RevAbbrID = :AbbrID; IF ((:RevCode IS NOT NULL) AND (:RevCode <> '')) THEN BEGIN SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID WHERE AbbrClassID = :ClassID AND Code = :RevCode INTO RevAbbrID; IF (:RevAbbrID IS NULL) THEN BEGIN RevAbbrID = GEN_ID(Abbr_gen, 1); INSERT INTO Abbr(AbbrID, AbbrClassID) VALUES (:RevAbbrID, :ClassID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:AbbrID, :RevAbbrID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:RevAbbrID, :AbbrID); INSERT INTO AbbrText(AbbrID, LanguageID, Code) VALUES (:RevAbbrID, :LanguageID, :RevCode); END ELSE BEGIN INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:AbbrID, :RevAbbrID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:RevAbbrID, :AbbrID); END END END CREATE OR ALTER PROCEDURE AddAbbr (AbbrSet varchar(256), ClassCode varchar(256), Code varchar(256), FullText varchar(256), Unit1 varchar(256), Unit2 varchar(256), RevCode varchar(256), QuickAccess smallint, IsDefault smallint, LanguageID integer, AdditionalCodeCategory varchar(256)) RETURNS (AbbrID integer) AS DECLARE VARIABLE SetID integer; DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE AddAbbrSet(:AbbrSet, '') RETURNING_VALUES :SetID; EXECUTE PROCEDURE AddAbbrClass(:AbbrSet, :ClassCode,NULL, :LanguageID) RETURNING_VALUES :ClassID; /*searching for current code*/ SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :Code INTO AbbrID; IF (:AbbrID IS NULL) THEN BEGIN AbbrID = GEN_ID(Abbr_gen, 1); INSERT INTO Abbr(AbbrID, AbbrClassID) VALUES (:AbbrID, :ClassID); INSERT INTO AbbrText(AbbrID, LanguageID, Code) VALUES (:AbbrID, :LanguageID, :Code); END EXECUTE PROCEDURE UpdateAbbr(:AbbrID, :LanguageID, :Code, :FullText, :Unit1, :Unit2, :RevCode, :QuickAccess, :IsDefault, :AdditionalCodeCategory); END }CREATE OR ALTER PROCEDURE AbbrSetName RETURNS (Name varchar(256)) AS BEGIN SELECT Upper(Name) FROM AbbrSet INTO :Name; END; SCREATE OR ALTER PROCEDURE FindAbbr(AbbrCode varchar(256), AbbrClassCode varchar(256)) RETURNS(AbbrID integer) AS BEGIN FOR SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID = AC.AbbrClassID INNER JOIN AbbrClassText ACTX ON AC.AbbrClassID = ACTX.AbbrClassID INNER JOIN Language L1 ON ACTX.LanguageID = L1.LanguageID AND L1.IsActive = 1 INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN Language L2 ON ATX.LanguageID = L2.LanguageID AND L1.IsActive = 1 WHERE ATX.Code = :AbbrCode AND AC.Code = :AbbrClassCode INTO :AbbrID DO BEGIN SUSPEND; END END !CREATE OR ALTER PROCEDURE ReverseEvents(TVInspectionID integer) AS DECLARE VARIABLE EventCnt integer; DECLARE VARIABLE ReachLength float; DECLARE VARIABLE MinDist float; DECLARE VARIABLE MaxDist float; DECLARE VARIABLE EventID integer; DECLARE VARIABLE PathLength float; DECLARE VARIABLE InternalPathLength float; DECLARE VARIABLE Code varchar(10); DECLARE VARIABLE PositionFrom float; DECLARE VARIABLE PositionTo float; DECLARE VARIABLE RouteDamageID integer; DECLARE VARIABLE RouteDamageIDA integer; DECLARE VARIABLE RouteDamageIDE integer; DECLARE VARIABLE PipeStart float; DECLARE VARIABLE DamageCodeID integer; DECLARE VARIABLE RevDamageCodeID integer; BEGIN PipeStart = 0; /* check if there is more than one event to reverse */ SELECT COUNT(*) FROM Event WHERE TVInspectionID = :TVInspectionID INTO :EventCnt; IF ((EventCnt IS NOT NULL) AND (EventCnt > 1)) THEN BEGIN /* get reach length from pipestructure table*/ SELECT ReachLength FROM PipeStructure PS INNER JOIN TVInspection I ON PS.StructureID = I.StructureID WHERE TVInspectionID = :TVInspectionID INTO :ReachLength; IF (ReachLength IS NULL) THEN ReachLength = 0; /* get min and max distances to calculate actual length*/ SELECT MIN(PathLength), MAX(PathLength) FROM Event WHERE TVInspectionID = :TVInspectionID INTO :MinDist, :MaxDist; /* compare reach lengths and take greater one*/ IF (MaxDist - MinDist > ReachLength) THEN ReachLength = MaxDist - MinDist; /* update events */ FOR SELECT EventID, InternalPathLength, SUBSTRING(CD.Code FROM 1 FOR 2) AS Code, CodeID, PositionFrom, PositionTo, RouteDamageID FROM Event E LEFT OUTER JOIN AbbrText CD ON E.CodeID = CD.AbbrID LEFT OUTER JOIN Language CDLang ON CD.LanguageID = CDLang.LanguageID AND CDLang.IsActive=1 WHERE TVInspectionID = :TVInspectionID INTO :EventID, :InternalPathLength, :Code, :DamageCodeID, :PositionFrom, :PositionTo, :RouteDamageID DO BEGIN /* change location of damage */ IF (Code = 'LV') THEN BEGIN PositionFrom = 6 - PositionFrom; IF (PositionFrom < 0) THEN PositionFrom = PositionFrom + 12; PositionTo = 6 - PositionTo; IF (PositionTo < 0) THEN PositionTo = PositionTo + 12; END ELSE IF (Code = 'LH') THEN BEGIN PositionFrom = 12 - PositionFrom; IF (PositionFrom < 0) THEN PositionFrom = PositionFrom + 12; PositionTo = 12 - PositionTo; IF (PositionTo < 0) THEN PositionTo = PositionTo + 12; END /* exchange start and stop of route damage */ SELECT AbbrID FROM FindAbbr('A', 'T') INTO :RouteDamageIDA; SELECT AbbrID FROM FindAbbr('E', 'T') Into :RouteDamageIDE; IF (RouteDamageID = RouteDamageIDA) THEN BEGIN RouteDamageID = RouteDamageIDE; END ELSE IF (RouteDamageID = RouteDamageIDE) THEN RouteDamageID = RouteDamageIDA; /* invert event path length */ InternalPathLength = ReachLength - InternalPathLength + MinDist; PathLength = InternalPathLength; IF (Code = 'PA') THEN BEGIN PipeStart = InternalPathLength; END ELSE IF ((Code = 'HA') AND (PipeStart >= InternalPathLength)) THEN InternalPathLength = PipeStart + 0.01; /* find reverse abbr */ SELECT RevAbbrID FROM RevAbbr WHERE AbbrID = :DamageCodeID INTO :RevDamageCodeID; IF (RevDamageCodeID IS NULL) THEN RevDamageCodeID = :DamageCodeID; /* update event */ UPDATE Event SET PathLength = :PathLength, InternalPathLength = :InternalPathLength, PositionFrom = :PositionFrom, PositionTo = :PositionTo, RouteDamageID = :RouteDamageID, CodeID = :RevDamageCodeID WHERE EventID = :EventID; END END END CREATE PROCEDURE ChangeReachFlowDirection(StructureID integer, NewFlowDirectionID integer) AS DECLARE VARIABLE FlowDirectionID integer; DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE EventID integer; BEGIN /* check current flow dir and update if different than target direction*/ SELECT FlowDirectionID, TVInspectionID FROM TVInspection I INNER JOIN Reach R ON I.StructureID = R.StructureID WHERE I.StructureID = :StructureID INTO :FlowDirectionID, :TVInspectionID; IF ((NewFlowDirectionID IS NOT NULL) AND (FlowDirectionID IS NOT NULL) AND (FlowDirectionID <> NewFlowDirectionID)) THEN BEGIN /* reverse order of events */ EXECUTE PROCEDURE ReverseEvents :TvInspectionID; /* update reach and inspection values */ SELECT UpperManholeID, LowerManholeID FROM Reach WHERE StructureID = :StructureID INTO :UpperManholeID, :LowerManholeID; UPDATE Reach SET UpperManholeID = :LowerManholeID, LowerManholeID = :UpperManholeID WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = :NewFlowDirectionID, Flag = 'X' WHERE StructureID = :StructureID; END END CREATE PROCEDURE ChangeReachFlowDirections(NewFlowDirectionID integer) AS DECLARE VARIABLE StructureID integer; BEGIN FOR SELECT StructureID FROM Reach INTO :StructureID DO BEGIN EXECUTE PROCEDURE ChangeReachFlowDirection :StructureID, :NewFlowDirectionID; END END CREATE OR ALTER PROCEDURE GetAvailableAbbrStageValues(Mode varchar(256), CurrentVal varchar(256), Stage smallint) RETURNS(AbbrID integer, Code varchar(256), FullText varchar(256)) AS BEGIN FOR SELECT ATX.AbbrID, ATX.Code, ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID = ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID = AC.AbbrClassID AND AC.Code = :Mode || :Stage WHERE ATX.Code LIKE :CurrentVal || '_%' ESCAPE '!' UNION SELECT ATX.AbbrID, ATX.Code, ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID = ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID = AC.AbbrClassID AND AC.Code = :Mode || :Stage WHERE (ATX.Code LIKE '_') AND EXISTS (SELECT * FROM AbbrText ATX2 INNER JOIN Abbr A2 ON A2.AbbrID = ATX2.AbbrID INNER JOIN AbbrClass AC2 ON A2.AbbrClassID = AC2.AbbrClassID AND AC2.Code = :Mode WHERE ATX2.Code LIKE :CurrentVal || (CASE WHEN ATX.Code = '_' THEN '!_' ELSE ATX.Code END) || '%' ESCAPE '!') ORDER BY 2 INTO :AbbrID, :Code, :FullText DO BEGIN SUSPEND; END END %CREATE OR ALTER PROCEDURE GetAbbrPrefixes RETURNS (PrefixReach varchar(256), PrefixHouseConnection varchar(256), PrefixManhole varchar(256)) AS BEGIN SELECT FIRST 1 PrefixReach, PrefixHouseConnection, PrefixManhole FROM Prefix INTO :PrefixReach, :PrefixHouseConnection, :PrefixManhole; END CREATE OR ALTER PROCEDURE SetAbbrPrefixes(PrefixReach varchar(256), PrefixHouseConnection varchar(256), PrefixManhole varchar(256)) AS BEGIN DELETE FROM Prefix; INSERT INTO Prefix VALUES (:PrefixReach, :PrefixHouseConnection, :PrefixManhole); END CREATE OR ALTER PROCEDURE AddSpecialAbbrClass(SpecialID integer, Code varchar(256), FullText varchar(256), LanguageID integer) RETURNS(SpecialAbbrClassID integer) AS BEGIN IF (SpecialID = 0) THEN BEGIN SpecialID = GEN_ID(SpecialAbbrClass_gen, 1); END INSERT INTO SpecialAbbrClass(SpecialAbbrClassID, Code) VALUES (:SpecialID, :Code); INSERT INTO SpecialAbbrClassText(SpecialAbbrClassID, LanguageID, FullText) VALUES (:SpecialID, :LanguageID, :FullText); SpecialAbbrClassID = SpecialID; END CREATE OR ALTER PROCEDURE GetRule(Wizard varchar(256), WizardField varchar(256), RuleName varchar(256)) RETURNS (RuleCode varchar(8191)) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID = R.WizardFieldID INNER JOIN Wizard W ON W.WizardID = F.WizardID WHERE R.Name = :RuleName ORDER BY R.RuleID INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName ORDER BY RuleID INTO :RuleCode; END END -CREATE OR ALTER PROCEDURE AddWizard(WizardName varchar(256)) RETURNS (WizardID integer) AS BEGIN SELECT WizardID FROM Wizard WHERE Name = :WizardName INTO :WizardID; IF (WizardID IS NULL) THEN BEGIN WizardID = GEN_ID(Wizard_gen, 1); INSERT INTO Wizard VALUES(:WizardID, :WizardName); END END COMMIT CREATE OR ALTER PROCEDURE AddWizardField(WizardName varchar(256), FieldName varchar(256)) RETURNS (WizardFieldID integer) AS DECLARE VARIABLE WizardID integer; BEGIN EXECUTE PROCEDURE AddWizard(:WizardName) RETURNING_VALUES :WizardID; SELECT WizardFieldID FROM WizardField WHERE WizardID = :WizardID AND Name = :FieldName INTO :WizardFieldID; IF (WizardFieldID IS NULL) THEN BEGIN WizardFieldID = GEN_ID(WizardField_gen, 1); INSERT INTO WizardField VALUES(:WizardFieldID, :WizardID, :FieldName); END END CREATE OR ALTER PROCEDURE AddRule (WizardName varchar(256), WizardFieldName varchar(256), RuleName varchar(256), RuleCode varchar(8191)) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name = :RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = :RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code = :RuleCode WHERE RuleID = :RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END CREATE OR ALTER PROCEDURE AddCustomer (Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) RETURNS (CustomerID integer) AS BEGIN CustomerID = GEN_ID(Customer_gen, 1); INSERT INTO Customer(CustomerID, Name, Street, Zip, City, Land, Tel, Fax, ExtraInfo) VALUES (:CustomerID, :Name, :Street, :Zip, :City, :Land, :Tel, :Fax, :ExtraInfo); END CREATE OR ALTER PROCEDURE FindCustomer (Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (Upper(C.Name) = Upper(:Name)) AND ((NullIf(C.Street, '') = '') OR (NullIf(:Street, '') = '') OR (Upper(C.Street) = Upper(:Street))) AND ((NullIf(C.Zip, '') = '') OR (NullIf(:Zip, '') = '') OR (Upper(C.Zip) = Upper(:Zip))) AND ((NullIf(C.City, '') = '') OR (NullIf(:City, '') = '') OR (Upper(C.City) = Upper(:City))) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name, :Street, :Zip, :City, :Land, :Tel, :Fax, :ExtraInfo) RETURNING_VALUES :CustomerID; END CREATE OR ALTER PROCEDURE UpdateCustomer(ID integer, Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :ID; END UPDATE Customer SET Name = :Name, Street = :Street, Zip = :Zip, City = :City, Land = :Land, Tel = :Tel, Fax = :Fax, ExtraInfo = :ExtraInfo WHERE CustomerID = :ID; END CREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256)) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :ManhInspDirUpwards, :UniqueKey); END 0CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), ManhInspDirUpwards smallint) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, ManhInspDirUpwards = :ManhInspDirUpwards WHERE ProjectID = :ID; END CREATE OR ALTER PROCEDURE FindManhole(Name varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE (S.Number = :Name) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number) VALUES (:StructureID, :Name); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END COMMIT CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX float, CoordY float, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END ELSE BEGIN StructureID = ID; END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX float, CoordY float, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :IsActive, :ParentEventID, :ParentStructureID; END CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, WaterProtectionZone =: WaterProtectionZone, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE FindReach(Number varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Reach R ON S.StructureID = R.StructureID WHERE (S.Number = :Number) INTO :StructureID; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, WATERPROTECTIONZONE varchar(256), POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END 7CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END COMMIT CREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, RouteDamage varchar(256), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID=0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart) VALUES(:EventID, :TVInspectionID, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:ChildStructureID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart); END ,CREATE OR ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer,CodeID integer,Code varchar(256),Comment varchar(256),Class char(1), Joint smallint,PositionFrom float,PositionTo float,JointAngle smallint,Mode char(1),InternalPathLength float, PathLength float,Measure1 float,Unit1 varchar(256),Measure2 float, Unit2 varchar(256),VideoCounter time,RouteDamageID integer,PictureCnt integer,ChildStructureID integer,AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) AS BEGIN SELECT StructureID,CodeID,Comment,Class,Joint,PositionFrom,PositionTo,JointAngle,Mode, InternalPathLength,PathLength,Measure1,U1.Name,Measure2,U2.Name,E.VideoCounter,RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID=:EventID) AS PictureCnt,ChildStructureID,AdditionalCodeID, ManholePartID, ManholePart FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID=TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID=:EventID INTO :StructureID,:CodeID,:Comment,:Class,:Joint,:PositionFrom,:PositionTo,:JointAngle,:Mode, :InternalPathLength,:PathLength,:Measure1,:Unit1,:Measure2,:Unit2,:VideoCounter,:RouteDamageID,:PictureCnt, :ChildStructureID,:AdditionalCodeID, :ManholePartID, :ManholePart; END cCREATE OR ALTER PROCEDURE WriteManholeConnection(ID integer, StructureID integer, TypeID integer, Dim float, Height float, MaterialID integer, ConnPosition smallint, Comment varchar(256), Coord varchar(256), ChildStructureID integer, Descr varchar(256)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; DECLARE VARIABLE TVInspectionID integer; BEGIN ManholeConnectionID = ID; IF (ManholeConnectionID = 0) THEN BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen, 1); END SELECT count(*) FROM Structure WHERE StructureID = :ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO ManholeConnection(ManholeConnectionID, TVInspectionID, TypeID, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr) VALUES(:ManholeConnectionID, :TVInspectionID, NULLIF(:TypeID, 0), :Dim, :Height, NULLIF(:MaterialID, 0), :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr); END CREATE OR ALTER PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer, TVInspectionID integer, TypeID integer, TypeText varchar(256), Dim float, Height float, MaterialID integer, ConnPosition smallint, Comment varchar(256), Coord varchar(256), ChildStructureID integer, Descr varchar(256)) AS BEGIN SELECT I.StructureID, I.TVInspectionID, TypeID, ATX.FullText, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr FROM ManholeConnection MC INNER JOIN TVInspection I ON MC.TVInspectionID = I.TVInspectionID LEFT OUTER JOIN AbbrText ATX ON MC.TypeID = ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID = L.LanguageID AND L.IsActive = 1 WHERE MC.ManholeConnectionID = :ManholeConnectionID INTO :StructureID, :TVInspectionID, :TypeID, :TypeText, :Dim, :Height, :MaterialID, :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr; END CREATE OR ALTER PROCEDURE AddFilm(StructureID integer,Path varchar(256),StartTC varchar(256),StopTC varchar(256),MPEGLength integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; DECLARE VARIABLE PressureInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:StructureID INTO :PressureInspectionID; INSERT INTO Multimedia(MultimediaID,Path,TVInspectionID,PressureInspectionID) VALUES (:MultimediaID,:Path,:TVInspectionID,:PressureInspectionID); INSERT INTO Film(MultimediaID,StartTC,StopTC,MPEGLength) VALUES (:MultimediaID,:StartTC,:StopTC,:MpegLength); END CREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(256); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID=:ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN IF (ModeCode LIKE 'S%') THEN /*Manhole*/ BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES (:ID); END ELSE ID = GEN_ID(Structure_gen,1); PressureInspectionID = GEN_ID(PressureInspection_gen,1); PressureTestDataID = GEN_ID(PressureTestData_gen,1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear,:ReportNo,:GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE Manhole SET LOWERPARTMATERIALID = NULLIF(:MaterialID, 0), WaterProtectionZone=:WaterProtectionZone WHERE StructureID=:StructureID; ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END CREATE OR ALTER PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) AS BEGIN SELECT ModeID, S.Number, UM.Number, LM.Number, S.Street, OrdererPresent, ContractorPresent, S.StreetCode, S.City, S.InspDate, S.ZIP, S.CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, CASE WHEN M.StructureID IS NOT NULL THEN M.LowerPartMaterialID WHEN Sep.StructureID IS NOT NULL THEN Sep.MaterialID ELSE PS.MaterialID END AS MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, PI.VideoTape, PI.ResponsiblePerson, PI.SectionNo, S.BuildYear, Device, Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, TypeOfSealing, Weather, PipeLength, IIF(PS.WaterProtectionZone IS NOT NULL, PS.WaterProtectionZone, M.WaterProtectionZone), PTD.Volume, PTD.SurfaceArea, S.ReportNo, Comment1, Comment2, JobNo, S.GroundWaterLevel, Sep.Description, Sep.Manufacturer, Sep.Model, PI.WaterLevel, Sep.NominalSize FROM Structure S INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID LEFT OUTER JOIN Manhole M ON S.StructureID = M.StructureID LEFT OUTER JOIN Separator Sep ON S.StructureID = Sep.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID, :Number, :UpperManhole, :LowerManhole, :Street, OrdererPresent, ContractorPresent, StreetCode, City, InspDate, ZIP, CodeDigit, FlowDirectionID, SewerTypeID, InnerProtectionID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, VideoTape, ResponsiblePerson, SectionNo, BuildYear, Device, Norm, NominalPressure, Reference, NominalTime, NominalSedation, TypeOfSealing, Weather, PipeLength, WaterProtectionZone, Volume, SurfaceArea, ReportNo, Comment1, Comment2, JobNo, GroundWaterLevel, SepDescription, SepManufacturer, SepModel, WaterLevel, NominalSize; END QCREATE OR ALTER PROCEDURE AddPressureTest(PressureInspectionID integer,DamageID integer,DamageText varchar(256), Comment varchar(256),BalloonPressure float,P1Start float,P1End float,P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength float,InternalPathLength float, NominalPressure float,Reference float,NominalTime time,NominalSedation time, Volume float,SurfaceArea float,VideoCounter time) RETURNS (EventID integer) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN EventID = GEN_ID(Event_gen,1); INSERT INTO AbstractEvent(EventID) VALUES (:EventID); INSERT INTO PressureTest(EventID,PressureInspectionID,DamageText,Comment,BalloonPressure, P1Start,P1End,P1Hermetic,AddedWater,RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd) VALUES (:EventID,:PressureInspectionID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End, :P1Hermetic,:Added,:RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd); IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; INSERT INTO JointPressureTest(EventID,JointNo,DamageID,PathLength,InternalPathLength,VideoCounter) VALUES (:EventID,:JointNo,:DamageID,:PathLength,:InternalPathLength,:VideoCounter); END IF (NominalPressure > 0) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END END COMMIT 8CREATE OR ALTER PROCEDURE GetPressureTestByID(EventID integer) RETURNS(PressureInspectionID integer,DamageID integer,DamageText varchar(256), Comment varchar(256),BalloonPressure float,P1Start float,P1End float,P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength float,InternalPathLength float, NominalPressure float,Reference float,NominalTime time,NominalSedation time, Volume float,SurfaceArea float,VideoCounter time) AS BEGIN SELECT PressureInspectionID,DamageID,DamageText,Comment,BalloonPressure,P1Start,P1End,P1Hermetic,AddedWater, RealSedation,StartTime,EndTime,P1TimeStart,P1TimeEnd,JointNo,PathLength,InternalPathLength, NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea, VideoCounter FROM PressureTest PT LEFT OUTER JOIN JointPressureTest JPT ON PT.EventID=JPT.EventID LEFT OUTER JOIN PressureTestData PTD ON JPT.PressureTestDataID=PTD.PressureTestDataID WHERE PT.EventID=:EventID INTO :PressureInspectionID,:DamageID,:DamageText,:Comment,:BalloonPressure,:P1Start,:P1End,:P1Hermetic,:Added, :RealSedation,:StartTime,:EndTime,:P1TimeStart,:P1TimeEnd,:JointNo,:PathLength,:InternalPathLength, :NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea,:VideoCounter; END .CREATE OR ALTER PROCEDURE UpdatePressureTest(EventID integer,PressureInspectionID integer,DamageID integer,DamageText varchar(256), Comment varchar(256),BalloonPressure float,P1Start float,P1End float,P1Hermetic integer, Added float,RealSedation time,StartTime time,EndTime time,P1TimeStart time,P1TimeEnd time, JointNo integer,PathLength float,InternalPathLength float, NominalPressure float,Reference float,NominalTime time,NominalSedation time, Volume float,SurfaceArea float,VideoCounter time) AS DECLARE VARIABLE PressureTestDataID integer; BEGIN UPDATE PressureTest SET PressureInspectionID=:PressureInspectionID,DamageText=:DamageText, Comment=:Comment,BalloonPressure=:BalloonPressure,P1Start=:P1Start,P1End=:P1End,P1Hermetic=:P1Hermetic, AddedWater=:Added,RealSedation=:RealSedation,StartTime=:StartTime,EndTime=:EndTime,P1TimeStart=:P1TimeStart, P1TimeEnd=:P1TimeEnd WHERE EventID=:EventID; IF (JointNo > 0) THEN BEGIN IF (DamageID = 0) THEN DamageID = NULL; UPDATE JointPressureTest SET JointNo=:JointNo,DamageID=:DamageID,PathLength=:PathLength, InternalPathLength=:InternalPathLength,VideoCounter=:VideoCounter WHERE EventID=:EventID; END SELECT PressureTestDataID FROM JointPressureTest WHERE EventID=:EventID INTO :PressureTestDataID; IF (NominalPressure = 0) THEN BEGIN DELETE FROM PressureTestData WHERE PressureTestDataID = :PressureTestDataID; UPDATE JointPressureTest SET PressureTestDataID = NULL; END ELSE BEGIN IF (:PressureTestDataID IS NULL) THEN BEGIN PressureTestDataID = GEN_ID(PressureTestData_gen,1); INSERT INTO PressureTestData(PressureTestDataID,NominalPressure,Reference,NominalTestTime,NominalSedation,Volume,SurfaceArea) VALUES (:PressureTestDataID,:NominalPressure,:Reference,:NominalTime,:NominalSedation,:Volume,:SurfaceArea); END ELSE BEGIN UPDATE PressureTestData SET NominalPressure=:NominalPressure,Reference=:Reference,NominalTestTime=:NominalTime, NominalSedation=:NominalSedation,Volume=:Volume,SurfaceArea=:SurfaceArea WHERE PressureTestDataID=:PressureTestDataID; END END END CREATE OR ALTER PROCEDURE UpdatePipeStructureSC(StructureID integer,ScanCamInspectionID integer,Number varchar(256), CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(256); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE ScanCamInspection SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE ScanCamInspectionID=:ScanCamInspectionID; END CREATE OR ALTER PROCEDURE AddScanCamInspection (Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256),StartMeter integer,EndMeter integer, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength integer,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256),StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END -CREATE OR ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256),StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(UpperManhole) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(LowerManhole) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END CREATE OR ALTER PROCEDURE UpdatePipeStructureIncl(StructureID integer,InclMeasurementID integer,Number varchar(256), CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(256); BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number=:Number,CodeDigit=:CodeDigit,InspDate=:InspDate,Street=:Street, StreetCode=:StreetCode,Zip=:Zip,City=:City,BuildYear=:BuildYear,ReportNo=:ReportNo, GroundWaterLevel=:GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID=:InnerProtectionID,SewerTypeID=:SewerTypeID,MaterialID=:MaterialID, ProfileTypeID=:ProfileTypeID,ProfileHeight=:ProfileHeight,ProfileWidth=:ProfileWidth, ReachLength=:ReachLength, SitePlanNo=:SitePlanNo,MunicipalCode=:MunicipalCode, DistrictNoID=:DistrictNoID,DistrictNo=:DistrictNo,PipeLength=:PipeLength, WaterProtectionZone=:WaterProtectionZone,PositionInStreetID=:PositionInStreetID, PositionInStreet=:PositionInStreet,SewerageDistrict=:SewerageDistrict WHERE StructureID=:StructureID; UPDATE InclMeasurement SET FlowDirectionID=:FlowDirectionID,InspectionModeID=:InspectionModeID, InspectionMode=:InspectionMode,OrdererPresent=:OrdererPresent,ContractorPresent=:ContractorPresent, Judgement=:Judgement,Timepoint=:Timepoint,PictureQuality=:PictureQuality,VideoCounter=:VideoCounter, VideoTape=:VideoTape,SectionNo=:SectionNo,ResponsiblePerson=:ResponsiblePerson, CityMapPageNo=:CityMapPageNo,StreetSurface=:StreetSurface,WeatherID=:WeatherID,Weather=:Weather, SewerNo=:SewerNo,Scale=:Scale,EndOfGuarantee=:EndOfGuarantee,EndOfGuaranteeDate=:EndOfGuaranteeDate, CleaningDate=:CleaningDate,Queue=:Queue,TypeOfSealing=:TypeOfSealing,Flag=:Flag, InspectionLength=:InspectionLength,Comment1=:Comment1,Comment2=:Comment2 WHERE InclMeasurementID=:InclMeasurementID; END CREATE OR ALTER PROCEDURE WriteInclMeasurement ( ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, HeightDifference float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; DECLARE VARIABLE AbbrSet varchar(256); BEGIN STRUCTUREID = ID; IF (STRUCTUREID <= 0) THEN STRUCTUREID = GEN_ID(STRUCTURE_GEN, 1); SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:STRUCTUREID INTO :InclMeasurementID; IF ((InclMeasurementID IS NULL) OR (InclMeasurementID <= 0)) THEN InclMeasurementID = GEN_ID(InclMeasurement_gen, 1); InspectionModeID = NULLIF(:InspectionModeID, 0); DistrictNoID = NULLIF(:DistrictNoID, 0); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE OR INSERT INTO Structure ( StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel ) VALUES ( :StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel ); UPDATE OR INSERT INTO PipeStructure ( StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict ) VALUES ( :StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict ); UPDATE OR INSERT INTO InclMeasurement ( InclMeasurementID, StructureID, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, HeightDifference ) VALUES ( :InclMeasurementID, :StructureID, NULLIF(:FlowDirectionID, 0), :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :HeightDifference ); UPDATE OR INSERT INTO Reach ( StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D ) VALUES( :StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D ); END COMMIT CREATE OR ALTER PROCEDURE GetInclMeasurementByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, HeightDifference float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, HeightDifference, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN InclMeasurement Incl ON Incl.StructureID = S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :HeightDifference, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :IsActive; END CREATE OR ALTER PROCEDURE AddStructureParticle(StructureID integer,ShapeID integer,Dim1 float,Dim2 float, Dim3 float,Dim4 float,Dim5 float,HeightIndex integer) RETURNS (StructureParticleID integer) AS BEGIN StructureParticleID = GEN_ID(StructureParticle_gen,1); INSERT INTO StructureParticle(StructureParticleID,ShapeID,StructureID,Dim1,Dim2,Dim3,Dim4,Dim5,HeightIndex) VALUES (:StructureParticleID,:ShapeID,:StructureID,:Dim1,:Dim2,:Dim3,:Dim4,:Dim5,:HeightIndex); END QCREATE OR ALTER PROCEDURE AddMeasurement(StructureID integer,EventID integer,MeasurementTypeCode varchar(256), Multiplicity integer,Value1 float,Value2 float) AS DECLARE VARIABLE MeasurementID integer; BEGIN MeasurementID = GEN_ID(Measurement_gen,1); IF (StructureID=0) THEN StructureID = NULL; IF (EventID=0) THEN EventID = NULL; IF (MeasurementTypeCode='') THEN MeasurementTypeCode = NULL; INSERT INTO Measurement(MeasurementID,StructureID,EventID,MeasurementTypeID,Multiplicity,Value1,Value2) VALUES(:MeasurementID,:StructureID,:EventID, (SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code='LX' WHERE ATX.Code=:MeasurementTypeCode),:Multiplicity,:Value1,:Value2); END CREATE OR ALTER PROCEDURE AddPreset(ControlKey varchar(256), Text varchar(256), PresetCnt integer) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP (:PresetCnt) PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END ELSE BEGIN UPDATE Preset SET Timepoint='now' WHERE ControlKey=:ControlKey AND Text=:Text; END END END CREATE OR ALTER PROCEDURE GetPresets(ControlKey varchar(256), PresetCnt integer) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST (:PresetCnt) DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END CREATE OR ALTER PROCEDURE AddSewerMap(StructureID integer, Path varchar(256), LocationX float, LocationY float, TileSize float, TileCountX integer, TileCountY integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia (MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); INSERT INTO SewerMap (MultimediaID, LocationX, LocationY, Rotation, ScaleX, ScaleY, TileSize, TileCountX, TileCountY, IsActive) VALUES (:MultimediaID, :LocationX, :LocationY, 0, 1, 1, :TileSize, :TileCountX, :TileCountY, 0); END CREATE OR ALTER PROCEDURE UpdateSewerMap(MultimediaID integer, Path varchar(256), LocationX float, LocationY float, Rotation float, ScaleY float, ScaleX float, TileSize float, TileCountX integer, TileCountY integer) AS BEGIN UPDATE Multimedia SET Path = :Path WHERE MultimediaID = :MultimediaID; UPDATE SewerMap SET LocationX = :LocationX, LocationY = :LocationY, Rotation = :Rotation, ScaleX = :ScaleX, ScaleY = :ScaleY, TileSize = :TileSize, TileCountX = :TileCountX, TileCountY = :TileCountY WHERE MultimediaID = :MultimediaID; END CREATE OR ALTER PROCEDURE AddSewerMapTile(MultimediaID integer, Format varchar(256), Data blob sub_type 0) RETURNS (TileID integer) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN TileID = GEN_ID(SewerMapTile_Gen, 1); INSERT INTO SewerMapTile (ID, MultimediaID, Format, Data) VALUES (:TileID, :MultimediaID, :Format, :Data); END ELSE BEGIN TileID = 0; END END COMMIT CREATE OR ALTER PROCEDURE UpdateSewerMapTile(TileID integer, MultimediaID integer, Format varchar(256), Data blob sub_type 0) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN UPDATE SewerMapTile SET MultimediaID = :MultimediaID, Format = :Format, Data = :Data WHERE ID = :TileID; END END CREATE OR ALTER PROCEDURE GetTilesBySewerMapID(MultimediaID integer) RETURNS (TileID Integer, Format varchar(256)) AS BEGIN FOR SELECT ID, Format FROM SewerMapTile WHERE MultimediaID = :MultimediaID INTO :TileID, :Format DO BEGIN SUSPEND; END END CREATE OR ALTER PROCEDURE AddReport(Report varchar(256),ReportType varchar(256),StructureID integer) RETURNS (MultimediaID integer) AS BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); INSERT INTO Multimedia(MultimediaID,TVInspectionID,Path) VALUES(:MultimediaID,NULL,:Report); INSERT INTO Report(MultimediaID,ReportType,StructureID) VALUES (:MultimediaID,:ReportType,:StructureID); END CREATE OR ALTER PROCEDURE WRITEMANHOLESTRUCTURE ( ID INTEGER, NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), MANHOLEFUNCTIONID INTEGER, MANHOLEDEPTH float, DESCENDINGHELP SMALLINT, DESCENDINGHELPTYPEID INTEGER, DESCENDINGHELPMATERIALID INTEGER, INNERPROTECTIONID INTEGER, NOOFCONNECTIONS INTEGER, HANDEDOVER SMALLINT, NOOFCOVERS INTEGER, COVERSHAPEID INTEGER, COVERTYPEID INTEGER, COVERLENGTHORDN float, COVERWIDTH float, COVERCLASSID INTEGER, COVERMATERIALID INTEGER, NOOFDISTANCERINGS INTEGER, DISTANCERINGHEIGHT INTEGER, DIRTTRAP SMALLINT, UPPERSHAPEID INTEGER, UPPERPLATE SMALLINT, UPPERCONE SMALLINT, UPPERCONEHEIGHT float, UPPERLENGTHORDN float, UPPERWIDTH float, UPPERHEIGHT float, UPPERMATERIALID INTEGER, LOWERSHAPEID INTEGER, LOWERPLATE SMALLINT, LOWERCONE SMALLINT, LOWERCONEHEIGHT float, LOWERLENGTHORDN float, LOWERWIDTH float, LOWERHEIGHT float, LOWERMATERIALID INTEGER, LOWERPLATFORM SMALLINT, BOTTOMSHAPEID INTEGER, BOTTOMLENGTHORDN float, BOTTOMWIDTH float, BOTTOMHEIGHT float, BOTTOMMATERIALID INTEGER, FLUMESHAPEID INTEGER, FLUMEMATERIALID INTEGER ) RETURNS (STRUCTUREID INTEGER) AS BEGIN IF (ID <= 0) THEN ID = GEN_ID(STRUCTURE_GEN, 1); STRUCTUREID = ID; UPDATE OR INSERT INTO STRUCTURE (StructureID, Number, CODEDIGIT, INSPDATE, STREET, STREETCODE, ZIP, CITY, BUILDYEAR, REPORTNO, GROUNDWATERLEVEL) VALUES (:ID, :NUMBER, :CODEDIGIT, :INSPDATE, :STREET, :STREETCODE, :ZIP, :CITY, :BUILDYEAR, :REPORTNO, :GROUNDWATERLEVEL); UPDATE OR INSERT INTO MANHOLESTRUCTURE ( STRUCTUREID, MANHOLEFUNCTIONID, MANHOLEDEPTH, DESCENDINGHELP, DESCENDINGHELPTYPEID, DESCENDINGHELPMATERIALID, INNERPROTECTIONID, NOOFCONNECTIONS, HANDEDOVER, NOOFCOVERS, COVERSHAPEID, COVERTYPEID, COVERLENGTHORDN, COVERWIDTH, COVERCLASSID, COVERMATERIALID, NOOFDISTANCERINGS, DISTANCERINGHEIGHT, DIRTTRAP, UPPERSHAPEID, UPPERPLATE, UPPERCONE, UPPERCONEHEIGHT, UPPERLENGTHORDN, UPPERWIDTH, UPPERHEIGHT, UPPERMATERIALID, LOWERSHAPEID, LOWERPLATE, LOWERCONE, LOWERCONEHEIGHT, LOWERLENGTHORDN, LOWERWIDTH, LOWERHEIGHT, LOWERMATERIALID, LOWERPLATFORM, BOTTOMSHAPEID, BOTTOMLENGTHORDN, BOTTOMWIDTH, BOTTOMHEIGHT, BOTTOMMATERIALID, FLUMESHAPEID, FLUMEMATERIALID) VALUES ( :ID, :MANHOLEFUNCTIONID, :MANHOLEDEPTH, :DESCENDINGHELP, :DESCENDINGHELPTYPEID, :DESCENDINGHELPMATERIALID, :INNERPROTECTIONID, :NOOFCONNECTIONS, :HANDEDOVER, :NOOFCOVERS, :COVERSHAPEID, :COVERTYPEID, :COVERLENGTHORDN, :COVERWIDTH, :COVERCLASSID, :COVERMATERIALID, :NOOFDISTANCERINGS, :DISTANCERINGHEIGHT, :DIRTTRAP, :UPPERSHAPEID, :UPPERPLATE, :UPPERCONE, :UPPERCONEHEIGHT, :UPPERLENGTHORDN, :UPPERWIDTH, :UPPERHEIGHT, :UPPERMATERIALID, :LOWERSHAPEID, :LOWERPLATE, :LOWERCONE, :LOWERCONEHEIGHT, :LOWERLENGTHORDN, :LOWERWIDTH, :LOWERHEIGHT, :LOWERMATERIALID, :LOWERPLATFORM, :BOTTOMSHAPEID, :BOTTOMLENGTHORDN, :BOTTOMWIDTH, :BOTTOMHEIGHT, :BOTTOMMATERIALID, :FLUMESHAPEID, :FLUMEMATERIALID); END CREATE OR ALTER PROCEDURE ConditionallyCombineInsps(MainID integer,ReverseID integer) AS DECLARE VARIABLE EH integer; BEGIN SELECT count(*) FROM STRUCTURE s INNER JOIN TVINSPECTION I ON I.STRUCTUREID=s.STRUCTUREID INNER JOIN event E ON E.tvinspectionid=I.TVINSPECTIONID INNER JOIN abbr A ON E.codeid=A.ABBRID INNER JOIN LABBRSPECIALABBRCLASS LAS ON LAS.ABBRID=A.ABBRID INNER JOIN SPECIALABBRCLASS SAC ON LAS.SPECIALABBRCLASSID=SAC.SPECIALABBRCLASSID AND SAC.CODE='EH' WHERE S.StructureID in (:MainID,:ReverseID) INTO :EH; IF (EH = 0) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID,StructureID,Dependency) VALUES(:MainID,:ReverseID,1); END END ?RECREATE VIEW Abbrs2 (AbbrID,Code,FullText,AbbrClassID,AbbrClassCode) AS SELECT A.AbbrID,ATX.Code,ATX.FullText,AC.AbbrClassID,AC.Code FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID COMMIT CREATE OR ALTER PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS BEGIN SELECT (SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID) || ' _reaches ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID)|| ' _connections ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM InclMeasurement)||' _inclinationMeasurements' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT (SELECT count(*) FROM ScanCamInspection)||' _ScanCamInspections' FROM RDB$DATABASE INTO :Stat; SUSPEND; SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END RECREATE VIEW ReachesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1,Comment2) AS SELECT 'H' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, CASE WHEN DN.AbbrID IS NULL THEN PS.DistrictNo ELSE DN.Code END AS DistrictNo, PS.PipeLength, PS.WaterProtectionZone, CASE WHEN PiS.AbbrID IS NULL THEN PS.PositionInStreet ELSE PiS.Code END AS PositionInStreet, PS.SewerageDistrict, R.UpperManholeID, R.LowerManholeID, UM.Number AS UpperManhole, LM.Number AS LowerManhole, R.StartMeter, R.EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, S.GroundWaterLevel,S.GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN Reach R ON PS.StructureID=R.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 LEFT OUTER JOIN AbbrText PiS ON PS.PositionInStreetID = PiS.AbbrID LEFT OUTER JOIN Language PiSLang ON PiS.LanguageID = PiSLang.LanguageID AND PiSLang.IsActive=1 LEFT OUTER JOIN AbbrText DN ON PS.DistrictNoID = DN.AbbrID LEFT OUTER JOIN Language DNLang ON DN.LanguageID = DNLang.LanguageID AND DNLang.IsActive=1 LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID *RECREATE VIEW HouseConnectionsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1, Comment2) AS SELECT 'A' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, ST.Code AS SewerType, MAT.Code AS Material, PT.Code AS ProfileType, PS.ProfileHeight, PS.ProfileWidth, PS.ReachLength, PS.SitePlanNo, PS.MunicipalCode, CASE WHEN DN.AbbrID IS NULL THEN PS.DistrictNo ELSE DN.Code END AS DistrictNo, PS.PipeLength, PS.WaterProtectionZone, CASE WHEN PiS.AbbrID IS NULL THEN PS.PositionInStreet ELSE PiS.Code END AS PositionInStreet, PS.SewerageDistrict, HC.StartManholeID, NULL AS LowerManholeID, UM.Number AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, HC.RevManhole, HC.DistanceFromManhole, LSS.MasterStructureID AS ParentStructureID, NULL AS ManholeForm, NULL AS CoordX, NULL AS CoordY, NULL AS CoordExactID, NULL AS CoverHeight, NULL AS CoverExactID, NULL AS BottomHeight, NULL AS BottomExactID, NULL AS Status, NULL AS FlumeShape, NULL AS DefinitionClass, NULL AS CoverDN, NULL AS CoverWidth, NULL AS CoverShape, NULL AS ManhShape, NULL AS ManhDN, NULL AS ManhWidth, NULL AS TaperShaftRing, NULL AS ManholeLowerShape, NULL AS ManholeLowerDN, NULL AS ManholeLowerWidth, NULL AS ManholeLowerHeight, NULL AS NeckMaterial, NULL AS UpperPartMaterial, NULL AS LowerPartMaterial, NULL AS FlumeMaterial, NULL AS ManholeStep, NULL AS DescendingHelp, NULL AS ShaftRing, NULL AS CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee,I.EndOfGuaranteeDate, I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, S.GroundWaterLevel, S.GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID=PS.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID LEFT OUTER JOIN AbbrText IP ON PS.InnerProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText ST ON PS.SewerTypeID = ST.AbbrID LEFT OUTER JOIN Language STLang ON ST.LanguageID = STLang.LanguageID AND STLang.IsActive=1 LEFT OUTER JOIN AbbrText MAT ON PS.MaterialID = MAT.AbbrID LEFT OUTER JOIN Language MATLang ON MAT.LanguageID = MATLang.LanguageID AND MATLang.IsActive=1 LEFT OUTER JOIN AbbrText PT ON PS.ProfileTypeID = PT.AbbrID LEFT OUTER JOIN Language PTLang ON PT.LanguageID = PTLang.LanguageID AND PTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 LEFT OUTER JOIN AbbrText PiS ON PS.PositionInStreetID = PiS.AbbrID LEFT OUTER JOIN Language PiSLang ON PiS.LanguageID = PiSLang.LanguageID AND PiSLang.IsActive=1 LEFT OUTER JOIN AbbrText DN ON PS.DistrictNoID = DN.AbbrID LEFT OUTER JOIN Language DNLang ON DN.LanguageID = DNLang.LanguageID AND DNLang.IsActive=1 LEFT OUTER JOIN Structure UM ON HC.StartManholeID = UM.StructureID LEFT OUTER JOIN LStructureStructure LSS ON S.StructureID=LSS.StructureID RECREATE VIEW ManholesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1, Comment2) AS SELECT 'S' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, NULL AS SewerType, NULL AS MaterialID, NULL AS ProfileType, NULL AS ProfileHeight, NULL AS ProfileWidth, NULL AS ReachLength, NULL AS SitePlanNo, NULL AS MunicipalCode, NULL AS DistrictNo, NULL AS PipeLength, NULL AS WaterProtectionZone, NULL AS PositionInStreet, NULL AS SewerageDistrict, NULL AS UpperManholeID, NULL AS LowerManholeID, NULL AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, MF.Code AS ManholeForm, M.CoordX, M.CoordY, M.CoordExactID, M.CoverHeight, M.CoverExactID, M.BottomHeight, M.BottomExactID, STA.Code AS Status, FS.Code AS FlumeShape, DC.Code AS DefinitionClass, M.CoverDN, M.CoverWidth, CS.Code AS CoverShape, MS.Code AS ManhShape, M.ManhDN, M.ManhWidth, M.TaperShaftRing, MLS.Code AS ManhLowerShape, M.ManhLowerDN, M.ManhLowerWidth, M.ManhLowerHeight, NM.Code AS NeckMaterial, UPM.Code AS UpperPartMaterial, LPM.Code AS LowerPartMaterial, FM.Code AS FlumeMaterial, MST.Code AS ManholeStep, M.DescendingHelp, M.ShaftRing, M.CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.EndOfGuaranteeDate,I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,NULL AS WallThickness, GroundWaterLevel, GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN AbbrText IP ON M.InternalProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText MF ON M.ManholeFormID = MF.AbbrID LEFT OUTER JOIN Language MFLang ON MF.LanguageID = MFLang.LanguageID AND MFLang.IsActive=1 LEFT OUTER JOIN AbbrText STA ON M.StatusID = STA.AbbrID LEFT OUTER JOIN Language STALang ON STA.LanguageID = STALang.LanguageID AND STALang.IsActive=1 LEFT OUTER JOIN AbbrText FS ON M.FlumeShapeID = FS.AbbrID LEFT OUTER JOIN Language FSLang ON FS.LanguageID = FSLang.LanguageID AND FSLang.IsActive=1 LEFT OUTER JOIN AbbrText DC ON M.DefinitionClassID = DC.AbbrID LEFT OUTER JOIN Language DCLang ON DC.LanguageID = DCLang.LanguageID AND DCLang.IsActive=1 LEFT OUTER JOIN AbbrText CS ON M.CoverShapeID = CS.AbbrID LEFT OUTER JOIN Language CSLang ON CS.LanguageID = CSLang.LanguageID AND CSLang.IsActive=1 LEFT OUTER JOIN AbbrText MS ON M.ManhShapeID = MS.AbbrID LEFT OUTER JOIN Language MSLang ON MS.LanguageID = MSLang.LanguageID AND MSLang.IsActive=1 LEFT OUTER JOIN AbbrText MLS ON M.ManhLowerShapeID = MLS.AbbrID LEFT OUTER JOIN Language MLSLang ON MLS.LanguageID = MLSLang.LanguageID AND MLSLang.IsActive=1 LEFT OUTER JOIN AbbrText NM ON M.NeckMaterialID = NM.AbbrID LEFT OUTER JOIN Language NMLang ON NM.LanguageID = NMLang.LanguageID AND NMLang.IsActive=1 LEFT OUTER JOIN AbbrText UPM ON M.UpperPartMaterialID = UPM.AbbrID LEFT OUTER JOIN Language UPMLang ON UPM.LanguageID = UPMLang.LanguageID AND UPMLang.IsActive=1 LEFT OUTER JOIN AbbrText LPM ON M.LowerPartMaterialID = LPM.AbbrID LEFT OUTER JOIN Language LPMLang ON LPM.LanguageID = LPMLang.LanguageID AND LPMLang.IsActive=1 LEFT OUTER JOIN AbbrText FM ON M.FlumeMaterialID = FM.AbbrID LEFT OUTER JOIN Language FMLang ON FM.LanguageID = FMLang.LanguageID AND FMLang.IsActive=1 LEFT OUTER JOIN AbbrText MST ON M.ManholeStepID = MST.AbbrID LEFT OUTER JOIN Language MSTLang ON FM.LanguageID = MSTLang.LanguageID AND MSTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 COMMIT ,RECREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ManholesFull ORDER BY 2 @IGNORE PICO-232 END C CREATE OR ALTER PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS DECLARE VARIABLE cnt integer; BEGIN SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID) || ' _reaches ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID)|| ' _connections ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM FILM INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PICTURE INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PressureInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM InclMeasurement INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM InclMeasurement)||' _inclinationMeasurements' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM ScanCamInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM ScanCamInspection)||' _ScanCamInspections' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END .ALTER TABLE Structure ADD IsArchived smallint @IGNORE PICO-299 start DROP VIEW TVInspsFull DROP VIEW ManholesFull DROP PROCEDURE GetManholeByID DROP PROCEDURE WriteManhole {DELETE FROM RDB$DEPENDENCIES WHERE rdb$dependent_name IN ('TVINSPSFULL', 'MANHOLESFULL', 'GETMANHOLEBYID', 'WRITEMANHOLE') COMMIT OALTER TABLE Manhole ADD CoordX2 double precision, ADD CoordY2 double precision COMMIT 6UPDATE Manhole SET CoordX2 = CoordX, CoordY2 = CoordY _ALTER TABLE Manhole DROP CoordX, DROP CoordY, ALTER CoordX2 TO CoordX, ALTER CoordY2 TO CoordY COMMIT CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END ELSE BEGIN StructureID = ID; END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :IsActive, :ParentEventID, :ParentStructureID; END RECREATE VIEW ManholesFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength, ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode, Comment1, Comment2) AS SELECT 'S' AS StructureType, S.StructureID, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.IsActive, S.IsMarked, IP.Code AS InnerProtection, NULL AS SewerType, NULL AS MaterialID, NULL AS ProfileType, NULL AS ProfileHeight, NULL AS ProfileWidth, NULL AS ReachLength, NULL AS SitePlanNo, NULL AS MunicipalCode, NULL AS DistrictNo, NULL AS PipeLength, NULL AS WaterProtectionZone, NULL AS PositionInStreet, NULL AS SewerageDistrict, NULL AS UpperManholeID, NULL AS LowerManholeID, NULL AS UpperManhole, NULL AS LowerManhole, NULL AS StartMeter, NULL AS EndMeter, NULL AS RevManhole, NULL AS DistanceFromManhole, NULL AS ParentStructureID, MF.Code AS ManholeForm, M.CoordX, M.CoordY, M.CoordExactID, M.CoverHeight, M.CoverExactID, M.BottomHeight, M.BottomExactID, STA.Code AS Status, FS.Code AS FlumeShape, DC.Code AS DefinitionClass, M.CoverDN, M.CoverWidth, CS.Code AS CoverShape, MS.Code AS ManhShape, M.ManhDN, M.ManhWidth, M.TaperShaftRing, MLS.Code AS ManhLowerShape, M.ManhLowerDN, M.ManhLowerWidth, M.ManhLowerHeight, NM.Code AS NeckMaterial, UPM.Code AS UpperPartMaterial, LPM.Code AS LowerPartMaterial, FM.Code AS FlumeMaterial, MST.Code AS ManholeStep, M.DescendingHelp, M.ShaftRing, M.CoverPlate, I.TVInspectionID, I.FlowDirectionID, FD.Code AS FlowDirection, CASE WHEN IM.AbbrID IS NULL THEN I.InspectionMode ELSE IM.Code END AS InspectionMode, I.OrdererPresent, I.ContractorPresent, I.Judgement, I.Timepoint, I.PictureQuality, I.VideoCounter, I.VideoTape, I.SectionNo, I.ResponsiblePerson, I.CityMapPageNo, I.StreetSurface, CASE WHEN Wth.AbbrID IS NULL THEN I.Weather ELSE Wth.Code END AS Weather, I.SewerNo, I.Scale, I.EndOfGuarantee, I.EndOfGuaranteeDate,I.CleaningDate, I.Queue, I.TypeOfSealing, I.InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,NULL AS WallThickness, GroundWaterLevel, GroupingCode, I.Comment1, I.Comment2 FROM Structure S INNER JOIN Manhole M ON S.StructureID=M.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID LEFT OUTER JOIN AbbrText IP ON M.InternalProtectionID = IP.AbbrID LEFT OUTER JOIN Language IPLang ON IP.LanguageID = IPLang.LanguageID AND IPLang.IsActive=1 LEFT OUTER JOIN AbbrText MF ON M.ManholeFormID = MF.AbbrID LEFT OUTER JOIN Language MFLang ON MF.LanguageID = MFLang.LanguageID AND MFLang.IsActive=1 LEFT OUTER JOIN AbbrText STA ON M.StatusID = STA.AbbrID LEFT OUTER JOIN Language STALang ON STA.LanguageID = STALang.LanguageID AND STALang.IsActive=1 LEFT OUTER JOIN AbbrText FS ON M.FlumeShapeID = FS.AbbrID LEFT OUTER JOIN Language FSLang ON FS.LanguageID = FSLang.LanguageID AND FSLang.IsActive=1 LEFT OUTER JOIN AbbrText DC ON M.DefinitionClassID = DC.AbbrID LEFT OUTER JOIN Language DCLang ON DC.LanguageID = DCLang.LanguageID AND DCLang.IsActive=1 LEFT OUTER JOIN AbbrText CS ON M.CoverShapeID = CS.AbbrID LEFT OUTER JOIN Language CSLang ON CS.LanguageID = CSLang.LanguageID AND CSLang.IsActive=1 LEFT OUTER JOIN AbbrText MS ON M.ManhShapeID = MS.AbbrID LEFT OUTER JOIN Language MSLang ON MS.LanguageID = MSLang.LanguageID AND MSLang.IsActive=1 LEFT OUTER JOIN AbbrText MLS ON M.ManhLowerShapeID = MLS.AbbrID LEFT OUTER JOIN Language MLSLang ON MLS.LanguageID = MLSLang.LanguageID AND MLSLang.IsActive=1 LEFT OUTER JOIN AbbrText NM ON M.NeckMaterialID = NM.AbbrID LEFT OUTER JOIN Language NMLang ON NM.LanguageID = NMLang.LanguageID AND NMLang.IsActive=1 LEFT OUTER JOIN AbbrText UPM ON M.UpperPartMaterialID = UPM.AbbrID LEFT OUTER JOIN Language UPMLang ON UPM.LanguageID = UPMLang.LanguageID AND UPMLang.IsActive=1 LEFT OUTER JOIN AbbrText LPM ON M.LowerPartMaterialID = LPM.AbbrID LEFT OUTER JOIN Language LPMLang ON LPM.LanguageID = LPMLang.LanguageID AND LPMLang.IsActive=1 LEFT OUTER JOIN AbbrText FM ON M.FlumeMaterialID = FM.AbbrID LEFT OUTER JOIN Language FMLang ON FM.LanguageID = FMLang.LanguageID AND FMLang.IsActive=1 LEFT OUTER JOIN AbbrText MST ON M.ManholeStepID = MST.AbbrID LEFT OUTER JOIN Language MSTLang ON FM.LanguageID = MSTLang.LanguageID AND MSTLang.IsActive=1 LEFT OUTER JOIN AbbrText FD ON I.FlowDirectionID = FD.AbbrID LEFT OUTER JOIN Language FDLang ON FD.LanguageID = FDLang.LanguageID AND FDLang.IsActive=1 LEFT OUTER JOIN AbbrText IM ON I.InspectionModeID = IM.AbbrID LEFT OUTER JOIN Language IMLang ON IM.LanguageID = IMLang.LanguageID AND IMLang.IsActive=1 LEFT OUTER JOIN AbbrText Wth ON I.WeatherID = Wth.AbbrID LEFT OUTER JOIN Language WthLang ON Wth.LanguageID = WthLang.LanguageID AND WthLang.IsActive=1 ,RECREATE VIEW TVInspsFull (StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2) AS SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee,EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ReachesFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM HouseConnectionsFull UNION SELECT StructureType, StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, IsActive, IsMarked, InnerProtection, SewerType, Material, ProfileType, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreet, SewerageDistrict, UpperManholeID, LowerManholeID, UpperManhole, LowerManhole, StartMeter, EndMeter, RevManhole, DistanceFromManhole, ParentStructureID, ManholeForm, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, Status, FlumeShape, DefinitionClass, CoverDN, CoverWidth, CoverShape, ManhShape, ManhDN, ManhWidth, TaperShaftRing, ManholeLowerShapeID, ManholeLowerDN, ManholeLowerWidth, ManholeLowerHeight, NeckMaterial, UpperPartMaterial, LowerPartMaterial, FlumeMaterial, ManholeStep, DescendingHelp, ShaftRing, CoverPlate, TVInspectionID, FlowDirectionID, FlowDirection, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate,CleaningDate, Queue, TypeOfSealing, InspectionLength,ResponsiblePersonCertificateNo,LocationDetails,FlowControlID,RenovationYear,SewerCategory,PreCleaningID, DrainageArea,InspPurposeID,WallThickness, GroundWaterLevel, GroupingCode,Comment1, Comment2 FROM ManholesFull ORDER BY 2 @IGNORE RALTER TABLE GPSData ADD Northing2 double precision, ADD Easting2 double precision COMMIT <UPDATE GPSData SET Northing2 = Northing, Easting2 = Easting hALTER TABLE GPSData DROP Northing, DROP Easting, ALTER Northing2 TO Northing, ALTER Easting2 TO Easting @IGNORE DROP PROCEDURE AddSewerMap DROP PROCEDURE UpdateSewerMap VALTER TABLE SewerMap ADD LocationX2 double precision, ADD LocationY2 double precision COMMIT CUPDATE SewerMap SET LocationX2 = LocationX, LocationY2 = LocationY rALTER TABLE SewerMap DROP LocationX, DROP LocationY, ALTER LocationX2 TO LocationX, ALTER LocationY2 TO LocationY CREATE OR ALTER PROCEDURE AddSewerMap(StructureID integer, Path varchar(256), LocationX double precision, LocationY double precision, TileSize float, TileCountX integer, TileCountY integer) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN MultimediaID = GEN_ID(Multimedia_gen,1); SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; INSERT INTO Multimedia (MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); INSERT INTO SewerMap (MultimediaID, LocationX, LocationY, Rotation, ScaleX, ScaleY, TileSize, TileCountX, TileCountY, IsActive) VALUES (:MultimediaID, :LocationX, :LocationY, 0, 1, 1, :TileSize, :TileCountX, :TileCountY, 0); END 5CREATE OR ALTER PROCEDURE UpdateSewerMap(MultimediaID integer, Path varchar(256), LocationX double precision, LocationY double precision, Rotation float, ScaleY float, ScaleX float, TileSize float, TileCountX integer, TileCountY integer) AS BEGIN UPDATE Multimedia SET Path = :Path WHERE MultimediaID = :MultimediaID; UPDATE SewerMap SET LocationX = :LocationX, LocationY = :LocationY, Rotation = :Rotation, ScaleX = :ScaleX, ScaleY = :ScaleY, TileSize = :TileSize, TileCountX = :TileCountX, TileCountY = :TileCountY WHERE MultimediaID = :MultimediaID; END @IGNORE PALTER TABLE LayerCircleElement ADD X2 double precision, ADD Y2 double precision COMMIT -UPDATE LayerCircleElement SET X2 = X, Y2 = Y LALTER TABLE LayerCircleElement DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y OALTER TABLE LayerImageElement ADD X2 double precision, ADD Y2 double precision COMMIT ,UPDATE LayerImageElement SET X2 = X, Y2 = Y KALTER TABLE LayerImageElement DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y QALTER TABLE LayerMeasureElement ADD X2 double precision, ADD Y2 double precision COMMIT .UPDATE LayerMeasureElement SET X2 = X, Y2 = Y MALTER TABLE LayerMeasureElement DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y PALTER TABLE LayerPolyLinePoint ADD X2 double precision, ADD Y2 double precision COMMIT -UPDATE LayerPolyLinePoint SET X2 = X, Y2 = Y LALTER TABLE LayerPolyLinePoint DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y NALTER TABLE LayerRectElement ADD X2 double precision, ADD Y2 double precision COMMIT +UPDATE LayerRectElement SET X2 = X, Y2 = Y JALTER TABLE LayerRectElement DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y NALTER TABLE LayerTextElement ADD X2 double precision, ADD Y2 double precision COMMIT +UPDATE LayerTextElement SET X2 = X, Y2 = Y JALTER TABLE LayerTextElement DROP X, DROP Y, ALTER X2 TO X, ALTER Y2 TO Y ALTER TABLE LStructureLayer ADD X2 double precision, ADD Y2 double precision, ADD X_Ref112 double precision, ADD Y_Ref112 double precision, ADD X_Ref122 double precision, ADD Y_Ref122 double precision, ADD X_Ref212 double precision, ADD Y_Ref212 double precision, ADD X_Ref222 double precision, ADD Y_Ref222 double precision, ADD Dist112 double precision, ADD Dist122 double precision, ADD Dist212 double precision, ADD Dist222 double precision COMMIT UPDATE LStructureLayer SET X2 = X, Y2 = Y, X_Ref112 = X_Ref11, Y_Ref112 = Y_Ref11, X_Ref122 = X_Ref12, Y_Ref122 = Y_Ref12, X_Ref212 = X_Ref21, Y_Ref212 = Y_Ref21, X_Ref222 = X_Ref22, Y_Ref222 = Y_Ref22, Dist112 = Dist11, Dist122 = Dist12, Dist212 = Dist21, Dist222 = Dist22 1ALTER TABLE LStructureLayer DROP X, DROP Y, DROP X_Ref11, DROP Y_Ref11, DROP X_Ref12, DROP Y_Ref12, DROP X_Ref21, DROP Y_Ref21, DROP X_Ref22, DROP Y_Ref22, DROP Dist11, DROP Dist12, DROP Dist21, DROP Dist22, ALTER X2 TO X, ALTER Y2 TO Y, ALTER X_Ref112 TO X_Ref11, ALTER Y_Ref112 TO Y_Ref11, ALTER X_Ref122 TO X_Ref12, ALTER Y_Ref122 TO Y_Ref12, ALTER X_Ref212 TO X_Ref21, ALTER Y_Ref212 TO Y_Ref21, ALTER X_Ref222 TO X_Ref22, ALTER Y_Ref222 TO Y_Ref22, ALTER Dist112 TO Dist11, ALTER Dist122 TO Dist12, ALTER Dist212 TO Dist21, ALTER Dist222 TO Dist22 @IGNORE PICO-299 end @IGNORE CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END END ELSE BEGIN StructureID = ID; END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE TVInspectionID = :TVInspectionID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END TALTER TABLE AbbrText ADD Measure1Descr varchar(256), ADD Measure2Descr varchar(256) COMMIT CREATE OR ALTER PROCEDURE UpdateAbbr (AbbrID integer, LanguageID integer, Code varchar(256), FullText varchar(256), Unit1 varchar(256), Unit2 varchar(256), RevCode varchar(256), QuickAccess smallint, IsDefault smallint, AdditionalCodeCategory varchar(256), Measure1Descr varchar(256), Measure2Descr varchar(256)) AS DECLARE VARIABLE ClassID integer; DECLARE VARIABLE AdditionalClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); SELECT AbbrClassID FROM AbbrClass WHERE Code = :AdditionalCodeCategory INTO :AdditionalClassID; UPDATE Abbr SET Unit1 = :Unit1ID, Unit2 = :Unit2ID, IsQuickAccess = :QuickAccess, AdditionalCodeCategoryID = :AdditionalClassID WHERE AbbrID = :AbbrID; UPDATE AbbrText SET Code = :Code, FullText = :FullText, Measure1Descr = :Measure1Descr, Measure2Descr = :Measure2Descr WHERE AbbrID = :AbbrID AND LanguageID = :LanguageID; SELECT AbbrClassID FROM Abbr WHERE AbbrID = :AbbrID INTO :ClassID; /*updating IsDefault for the whole category*/ IF (IsDefault > 0) THEN BEGIN UPDATE Abbr SET IsDefault = 0 WHERE AbbrClassID = :ClassID; UPDATE Abbr SET IsDefault = :IsDefault WHERE AbbrID = :AbbrID; END /*searching for reverse code*/ DELETE FROM RevAbbr WHERE AbbrID = :AbbrID OR RevAbbrID = :AbbrID; IF ((:RevCode IS NOT NULL) AND (:RevCode <> '')) THEN BEGIN SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID WHERE AbbrClassID = :ClassID AND Code = :RevCode INTO RevAbbrID; IF (:RevAbbrID IS NULL) THEN BEGIN RevAbbrID = GEN_ID(Abbr_gen, 1); INSERT INTO Abbr(AbbrID, AbbrClassID) VALUES (:RevAbbrID, :ClassID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:AbbrID, :RevAbbrID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:RevAbbrID, :AbbrID); INSERT INTO AbbrText(AbbrID, LanguageID, Code) VALUES (:RevAbbrID, :LanguageID, :RevCode); END ELSE BEGIN INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:AbbrID, :RevAbbrID); INSERT INTO RevAbbr(AbbrID, RevAbbrID) VALUES (:RevAbbrID, :AbbrID); END END END ,CREATE OR ALTER PROCEDURE AddAbbr (AbbrSet varchar(256), ClassCode varchar(256), Code varchar(256), FullText varchar(256), Unit1 varchar(256), Unit2 varchar(256), RevCode varchar(256), QuickAccess smallint, IsDefault smallint, LanguageID integer, AdditionalCodeCategory varchar(256), Measure1Descr varchar(256), Measure2Descr varchar(256)) RETURNS (AbbrID integer) AS DECLARE VARIABLE SetID integer; DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE AddAbbrSet(:AbbrSet, '') RETURNING_VALUES :SetID; EXECUTE PROCEDURE AddAbbrClass(:AbbrSet, :ClassCode,NULL, :LanguageID) RETURNING_VALUES :ClassID; /*searching for current code*/ SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :Code INTO AbbrID; IF (:AbbrID IS NULL) THEN BEGIN AbbrID = GEN_ID(Abbr_gen, 1); INSERT INTO Abbr(AbbrID, AbbrClassID) VALUES (:AbbrID, :ClassID); INSERT INTO AbbrText(AbbrID, LanguageID, Code) VALUES (:AbbrID, :LanguageID, :Code); END EXECUTE PROCEDURE UpdateAbbr(:AbbrID, :LanguageID, :Code, :FullText, :Unit1, :Unit2, :RevCode, :QuickAccess, :IsDefault, :AdditionalCodeCategory, :Measure1Descr, :Measure2Descr); END &ALTER TABLE Event ADD Counter integer COMMIT CREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, RouteDamage varchar(256), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart) VALUES(:EventID, :TVInspectionID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:ChildStructureID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart); END CREATE OR ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, PictureCnt integer, ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) AS BEGIN SELECT StructureID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, Mode, InternalPathLength, PathLength, Measure1, U1.Name, Measure2, U2.Name, E.VideoCounter, RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID = :EventID) AS PictureCnt, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID = :EventID INTO :StructureID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :Mode, :InternalPathLength, :PathLength, :Measure1, :Unit1, :Measure2, :Unit2, :VideoCounter, :RouteDamageID, :PictureCnt, :ChildStructureID, :AdditionalCodeID, :ManholePartID, :ManholePart; END CALTER TABLE HouseConnection ADD ParentStructureNumber varchar(256) COMMIT CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, WATERPROTECTIONZONE varchar(256), POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = ID; IF ((StartManhole IS NOT NULL) AND (StartManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(StartManhole) RETURNING_VALUES (StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END @ALTER TABLE SewerMapTile ADD CoordX integer, ADD CoordY integer COMMIT EXECUTE BLOCK AS DECLARE VARIABLE MapID integer; DECLARE VARIABLE TileID integer; DECLARE VARIABLE TileCntX integer; DECLARE VARIABLE Idx integer; BEGIN FOR SELECT MultimediaID, TileCountX FROM SewerMap SM INTO :MapID, :TileCntX DO BEGIN Idx = 0; FOR SELECT ID FROM SewerMapTile WHERE MultimediaID = :MapID ORDER BY ID INTO :TileID DO BEGIN UPDATE SewerMapTile SET CoordX = Mod(:Idx, :TileCntX), CoordY = Trunc(:Idx / :TileCntX) WHERE ID = :TileID; Idx = Idx + 1; END END END CREATE OR ALTER PROCEDURE AddSewerMapTile(MultimediaID integer, Format varchar(256), CoordX integer, CoordY integer, Data blob sub_type 0) RETURNS (TileID integer) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN TileID = GEN_ID(SewerMapTile_Gen, 1); INSERT INTO SewerMapTile (ID, MultimediaID, Format, Data, CoordX, CoordY) VALUES (:TileID, :MultimediaID, :Format, :Data, :CoordX, :CoordY); END ELSE BEGIN TileID = 0; END END CREATE OR ALTER PROCEDURE UpdateSewerMapTile(TileID integer, MultimediaID integer, Format varchar(256), CoordX integer, CoordY integer, Data blob sub_type 0) AS BEGIN SELECT MultimediaID FROM SewerMap WHERE MultimediaID = :MultimediaID INTO :MultimediaID; IF (MultimediaID IS NOT NULL) THEN BEGIN UPDATE SewerMapTile SET MultimediaID = :MultimediaID, Format = :Format, CoordX = :CoordX, CoordY = :CoordY, Data = :Data WHERE ID = :TileID; END END @IGNORE @IGNORE @IGNORE HALTER PROCEDURE DeletePicture(StructureID integer, EventID integer, Path varchar(1000)) AS DECLARE VARIABLE MultimediaID integer; BEGIN FOR SELECT M.MultimediaID FROM TVInspection T INNER JOIN Multimedia M ON T.TVInspectionID = M.TVInspectionID INNER JOIN Picture P ON M.MultimediaID = P.MultimediaID WHERE T.StructureID = :StructureID AND M.Path = :Path AND (:EventID IS NULL OR :EventID = 0 OR P.EventID = :EventID) INTO :MultimediaID DO BEGIN DELETE FROM Picture WHERE MultimediaID = :MultimediaID; DELETE FROM Multimedia WHERE MultimediaID = :MultimediaID; END END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END END ELSE BEGIN StructureID = ID; END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256),StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:IsActive; END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN EXECUTE PROCEDURE FindManhole(:Number) RETURNING_VALUES StructureID; END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END @IGNORE PICO-387 start $DROP PROCEDURE AddScanCamInspection 'DROP PROCEDURE UpdateScanCamInspection DROP PROCEDURE WriteManhole DROP PROCEDURE WriteReach $DROP PROCEDURE WriteHouseConnection !DROP PROCEDURE WritePressureInsp $DROP PROCEDURE WriteInclMeasurement vCREATE OR ALTER PROCEDURE FindManhole(Number varchar(256), GroupingCode varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE (S.Number = :Number AND COALESCE(:GroupingCode, '') = COALESCE(S.GroupingCode, '')) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number) VALUES (:StructureID, :Number); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END COMMIT CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, WATERPROTECTIONZONE varchar(256), POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(256); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID = :ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); PressureInspectionID = GEN_ID(PressureInspection_gen, 1); PressureTestDataID = GEN_ID(PressureTestData_gen, 1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear, :ReportNo, :GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE Manhole SET LOWERPARTMATERIALID = NULLIF(:MaterialID, 0), WaterProtectionZone = :WaterProtectionZone WHERE StructureID = :StructureID; ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END QCREATE OR ALTER PROCEDURE AddScanCamInspection (Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256), GroupingCode varchar(256), StartMeter integer,EndMeter integer, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID) VALUES(:ScanCamInspectionID,:StructureID); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END iCREATE OR ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256), GroupingCode varchar(256), StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; END 7CREATE OR ALTER PROCEDURE WriteInclMeasurement ( ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, HeightDifference float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), StartMeter float, EndMeter float, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE InclMeasurementID integer; DECLARE VARIABLE AbbrSet varchar(256); BEGIN STRUCTUREID = ID; IF (STRUCTUREID <= 0) THEN STRUCTUREID = GEN_ID(STRUCTURE_GEN, 1); SELECT FIRST 1 InclMeasurementID FROM InclMeasurement WHERE StructureID=:STRUCTUREID INTO :InclMeasurementID; IF ((InclMeasurementID IS NULL) OR (InclMeasurementID <= 0)) THEN InclMeasurementID = GEN_ID(InclMeasurement_gen, 1); InspectionModeID = NULLIF(:InspectionModeID, 0); DistrictNoID = NULLIF(:DistrictNoID, 0); IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo,'O') RETURNING_VALUES (:DistrictNoID); END UPDATE OR INSERT INTO Structure ( StructureID, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel ) VALUES ( :StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel ); UPDATE OR INSERT INTO PipeStructure ( StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict ) VALUES ( :StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict ); UPDATE OR INSERT INTO InclMeasurement ( InclMeasurementID, StructureID, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, HeightDifference ) VALUES ( :InclMeasurementID, :StructureID, NULLIF(:FlowDirectionID, 0), :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :HeightDifference ); UPDATE OR INSERT INTO Reach ( StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D ) VALUES( :StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D ); END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END sALTER TABLE TVInspection ADD WaterControlID integer REFERENCES Abbr, ADD WayOfInspectionID integer REFERENCES Abbr COMMIT CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, WaterProtectionZone =: WaterProtectionZone, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END dCREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END TCREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, WATERPROTECTIONZONE varchar(256), POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, :WaterControlID, :WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END CREATE OR ALTER PROCEDURE AddAbbrSet (Name varchar(256), FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN SELECT AbbrSetID FROM AbbrSet INTO :AbbrSetID; IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen, 1); INSERT INTO AbbrSet(AbbrSetID,Name, FullName) VALUES(:AbbrSetID, :Name, :FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET Name = :Name, FullName = :FullName WHERE AbbrSetID = :AbbrSetID; END END END @IGNORE @IGNORE CREATE OR ALTER PROCEDURE FindManhole(Number varchar(256), GroupingCode varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE (S.Number = :Number AND (COALESCE(:GroupingCode, '') = '' OR COALESCE(S.GroupingCode, '') = '' OR :GroupingCode = S.GroupingCode)) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number, GroupingCode) VALUES (:StructureID, :Number, :GroupingCode); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END iALTER TABLE Manhole ADD SewerTypeID integer REFERENCES Abbr, ADD StructureTypeID integer REFERENCES Abbr COMMIT hCREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :IsActive, :ParentEventID, :ParentStructureID; END @IGNORE TCREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END @IGNORE EALTER TABLE TVInspection ADD TypeOfSealingID integer REFERENCES Abbr LALTER TABLE PipeStructure ADD WaterProtectionZoneID integer REFERENCES Abbr FALTER TABLE Manhole ADD WaterProtectionZoneID integer REFERENCES Abbr COMMIT CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, WaterProtectionZone =: WaterProtectionZone, WaterProtectionZoneID =: WaterProtectionZoneID, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, TypeOfSealingID = :TypeOfSealingID, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END ?CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, :WaterControlID, :WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :IsActive, :ParentEventID, :ParentStructureID; END 8CREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(256); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID = :ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); PressureInspectionID = GEN_ID(PressureInspection_gen, 1); PressureTestDataID = GEN_ID(PressureTestData_gen, 1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear, :ReportNo, :GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE Manhole SET LOWERPARTMATERIALID = NULLIF(:MaterialID, 0), WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID WHERE StructureID = :StructureID; ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone, WaterProtectionZoneID) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0)); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END CREATE OR ALTER PROCEDURE GetPressureInspByID(StructureID integer) RETURNS(ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) AS BEGIN SELECT ModeID, S.Number, UM.Number, LM.Number, S.Street, OrdererPresent, ContractorPresent, S.StreetCode, S.City, S.InspDate, S.ZIP, S.CodeDigit, FlowDirectionID, IIF(M.SewerTypeID IS NOT NULL, M.SewerTypeID, PS.SewerTypeID), InnerProtectionID, CASE WHEN M.StructureID IS NOT NULL THEN M.LowerPartMaterialID WHEN Sep.StructureID IS NOT NULL THEN Sep.MaterialID ELSE PS.MaterialID END AS MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, InspectedTubeLength, PI.VideoTape, PI.ResponsiblePerson, PI.SectionNo, S.BuildYear, Device, Norm, PTD.NominalPressure, PTD.Reference, PTD.NominalTestTime, PTD.NominalSedation, TypeOfSealing, Weather, PipeLength, IIF(PS.WaterProtectionZone IS NOT NULL, PS.WaterProtectionZone, M.WaterProtectionZone), IIF(PS.WaterProtectionZoneID IS NOT NULL, PS.WaterProtectionZoneID, M.WaterProtectionZoneID), PTD.Volume, PTD.SurfaceArea, S.ReportNo, Comment1, Comment2, JobNo, S.GroundWaterLevel, Sep.Description, Sep.Manufacturer, Sep.Model, PI.WaterLevel, Sep.NominalSize FROM Structure S INNER JOIN PressureInspection PI ON S.StructureID = PI.StructureID LEFT OUTER JOIN PipeStructure PS ON S.StructureID = PS.StructureID LEFT OUTER JOIN Reach R ON S.StructureID = R.StructureID LEFT OUTER JOIN Manhole M ON S.StructureID = M.StructureID LEFT OUTER JOIN Separator Sep ON S.StructureID = Sep.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN PressureTestData PTD ON PI.PressureTestDataID=PTD.PressureTestDataID WHERE S.StructureID = :StructureID INTO :ModeID, :Number, :UpperManhole, :LowerManhole, :Street, :OrdererPresent, :ContractorPresent, :StreetCode, :City, :InspDate, :ZIP, :CodeDigit, :FlowDirectionID, :SewerTypeID, :InnerProtectionID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :InspectedTubeLength, :VideoTape, :ResponsiblePerson, :SectionNo, :BuildYear, :Device, :Norm, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :TypeOfSealing, :Weather, :PipeLength, :WaterProtectionZone, :WaterProtectionZoneID, :Volume, :SurfaceArea, :ReportNo, :Comment1, :Comment2, :JobNo, :GroundWaterLevel, :SepDescription, :SepManufacturer, :SepModel, :WaterLevel, :NominalSize; END YALTER TABLE Manhole ADD CoordXOffset double precision, ADD CoordYOffset double precision rCREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :IsActive, :ParentEventID, :ParentStructureID; END CREATE OR ALTER PROCEDURE FindManhole(Number varchar(256), GroupingCode varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE S.Number = :Number AND ((COALESCE(:GroupingCode, '') = '' AND COALESCE(S.GroupingCode, '') = '') OR :GroupingCode = S.GroupingCode) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN /*Temporary solution. Target: AddManhole*/ StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number, GroupingCode) VALUES (:StructureID, :Number, :GroupingCode); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END @ALTER TABLE Manhole ADD BenchMaterialID integer REFERENCES Abbr CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :IsActive, :ParentEventID, :ParentStructureID; END )ALTER TABLE Manhole ADD Screwed smallint CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), Screwed = :Screwed, ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, Screwed, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :Screwed, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :IsActive, :ParentEventID, :ParentStructureID; END CREATE OR ALTER PROCEDURE WritePicture(ID integer, StructureID integer, EventID integer, Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN MultimediaID = GEN_ID(Multimedia_gen, 1); END ELSE BEGIN MultimediaID = ID; END SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO Multimedia(MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); IF (:EventID > 0) THEN BEGIN UPDATE OR INSERT INTO Picture(MultimediaID, EventID) VALUES (:MultimediaID, :EventID); END ELSE BEGIN UPDATE OR INSERT INTO Picture(MultimediaID, EventID) VALUES (:MultimediaID, NULL); END END @IGNORE CREATE OR ALTER PROCEDURE AddSpecialAbbrClass(SpecialID integer, Code varchar(256), FullText varchar(256), LanguageID integer) RETURNS(SpecialAbbrClassID integer) AS BEGIN IF (SpecialID = 0) THEN SELECT Max(SpecialAbbrClassID) + 1 FROM SpecialAbbrClass INTO :SpecialID; UPDATE OR INSERT INTO SpecialAbbrClass(SpecialAbbrClassID, Code) VALUES (:SpecialID, :Code); UPDATE OR INSERT INTO SpecialAbbrClassText(SpecialAbbrClassID, LanguageID, FullText) VALUES (:SpecialID, :LanguageID, :FullText); SpecialAbbrClassID = SpecialID; END COMMIT @IGNORE CREATE OR ALTER PROCEDURE WriteManholeConnection(ID integer, StructureID integer, TypeID integer, Dim float, Height float, MaterialID integer, ConnPosition smallint, Comment varchar(256), Coord varchar(256), ChildStructureID integer, Descr varchar(256)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; DECLARE VARIABLE TVInspectionID integer; BEGIN ManholeConnectionID = ID; IF ((ManholeConnectionID IS NULL) OR (ManholeConnectionID = 0)) THEN BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen, 1); END SELECT count(*) FROM Structure WHERE StructureID = :ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO ManholeConnection(ManholeConnectionID, TVInspectionID, TypeID, Dim, Height, MaterialID, ConnPosition, Comment, Coord, ChildStructureID, Descr) VALUES(:ManholeConnectionID, :TVInspectionID, NULLIF(:TypeID, 0), :Dim, :Height, NULLIF(:MaterialID, 0), :ConnPosition, :Comment, :Coord, :ChildStructureID, :Descr); END $CREATE OR ALTER PROCEDURE AddSpecialAbbrClass(SpecialID integer, Code varchar(256), FullText varchar(256), LanguageID integer) RETURNS(SpecialAbbrClassID integer) AS BEGIN IF (SpecialID = 0) THEN SELECT COALESCE(Max(SpecialAbbrClassID) + 1, 1) FROM SpecialAbbrClass INTO :SpecialID; UPDATE OR INSERT INTO SpecialAbbrClass(SpecialAbbrClassID, Code) VALUES (:SpecialID, :Code); UPDATE OR INSERT INTO SpecialAbbrClassText(SpecialAbbrClassID, LanguageID, FullText) VALUES (:SpecialID, :LanguageID, :FullText); SpecialAbbrClassID = SpecialID; END @IGNORE PICO-541; PICO-631 ALTER TABLE PipeStructure ADD OriginProfileDimID integer REFERENCES Abbr, ADD OriginMaterialID integer REFERENCES Abbr, ADD TypeOfInflowID integer REFERENCES Abbr, ADD TypeOfOutflowID integer REFERENCES Abbr COMMIT CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, OriginProfileDimID = NULLIF(:OriginProfileDimID, 0), OriginMaterialID = NULLIF(:OriginMaterialID, 0), TypeOfInflowID = NULLIF(:TypeOfInflowID, 0), TypeOfOutflowID = NULLIF(:TypeOfOutflowID, 0), WaterProtectionZone =: WaterProtectionZone, WaterProtectionZoneID =: WaterProtectionZoneID, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, TypeOfSealingID = :TypeOfSealingID, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, :WaterControlID, :WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END @IGNORE PICO-630 8ALTER TABLE Project ADD InspReferencePoint varchar(256) COMMIT CREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256)) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, InspReferencePoint, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :InspReferencePoint, :ManhInspDirUpwards, :UniqueKey); END {CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, InspReferencePoint = :InspReferencePoint, ManhInspDirUpwards = :ManhInspDirUpwards WHERE ProjectID = :ID; END CREATE OR ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, PictureFormat varchar(256), FilmFormatID integer, FilmFormat varchar(256), DefaultExporter varchar(256), ManhInspDirUpwards smallint, IsActive smallint, InspReferencePoint varchar(256), UniqueKey varchar(256) ) AS BEGIN SELECT CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, P.PictureFormatID, PF.Name AS PictureFormat, P.FilmFormatID, FF.Name AS FilmFormat, DefaultExporter, ManhInspDirUpwards, InspReferencePoint, IsActive, UniqueKey FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID = PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID = FF.FilmFormatID WHERE ProjectID = :ID INTO :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :PictureFormat, :FilmFormatID, :FilmFormat, :DefaultExporter, :ManhInspDirUpwards, :InspReferencePoint, :IsActive, :UniqueKey; END @IGNORE PICO-656 :ALTER TABLE ScanCamInspection ADD ReferenceDNMode integer COMMIT CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256),StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, ReferenceDNMode integer, IsActive smallint) AS BEGIN SELECT S.Number,S.CodeDigit,S.InspDate,S.Street,S.StreetCode,S.Zip,S.City,S.BuildYear,S.ReportNo,S.GroundWaterLevel, UM.Number,LM.Number,FlowDirectionID,InspectionModeID,InspectionMode,OrdererPresent,ContractorPresent, InnerProtectionID,SewerTypeID,MaterialID,ProfileTypeID,ProfileHeight,ProfileWidth,ReachLength,Judgement,Timepoint, PictureQuality,VideoCounter,VideoTape,SectionNo,ResponsiblePerson,SitePlanNo,MunicipalCode,DistrictNoID,DistrictNo,CityMapPageNo,StreetSurface, WeatherID,Weather,SewerNo,Scale,PipeLength,WaterProtectionZone,PositionInStreetID,PositionInStreet,SewerageDistrict,EndOfGuarantee, EndOfGuaranteeDate,CleaningDate,Queue,TypeOfSealing,Flag,InspectionLength,Comment1,Comment2,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D,SC.ReferenceDNMode,S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit,:InspDate,:Street,:StreetCode,:Zip,:City,:BuildYear,:ReportNo,:GroundWaterLevel, :UpperManhole,:LowerManhole,:FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D,:ReferenceDNMode,:IsActive; END CREATE OR ALTER PROCEDURE AddScanCamInspection (Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256), GroupingCode varchar(256), StartMeter integer,EndMeter integer, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, ReferenceDNMode integer) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN StructureID = GEN_ID(Structure_gen,1); ScanCamInspectionID = GEN_ID(ScanCamInspection_gen,1); IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END INSERT INTO Structure(StructureID) VALUES(:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); INSERT INTO ScanCamInspection(ScanCamInspectionID,StructureID,ReferenceDNMode) VALUES(:ScanCamInspectionID,:StructureID,:ReferenceDNMode); EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent,:ContractorPresent, :InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth,:ReachLength,:Judgement,:Timepoint, :PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson,:SitePlanNo,:MunicipalCode, :DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface,:WeatherID,:Weather,:SewerNo,:Scale,:PipeLength, :WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee,:EndOfGuaranteeDate, :CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); INSERT INTO Reach(StructureID,UpperManholeID,LowerManholeID,StartMeter,EndMeter, RTI_U,RTI_D,GTI_U,GTI_D,RTG_U,RTG_D) VALUES(:StructureID,:UpperManholeID,:LowerManholeID,:StartMeter,:EndMeter, :RTI_U,:RTI_D,:GTI_U,:GTI_D,:RTG_U,:RTG_D); END CREATE OR ALTER PROCEDURE UpdateScanCamInspection (StructureID integer,Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight float,ProfileWidth float, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256), GroupingCode varchar(256), StartMeter float,EndMeter float, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, ReferenceDNMode integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF (FlowDirectionID = 0) THEN FlowDirectionID = NULL; IF (InspectionModeID = 0) THEN InspectionModeID = NULL; IF (InnerProtectionID = 0) THEN InnerProtectionID = NULL; IF (SewerTypeID = 0) THEN SewerTypeID = NULL; IF (MaterialID = 0) THEN MaterialID = NULL; IF (ProfileTypeID = 0) THEN ProfileTypeID = NULL; IF (DistrictNoID = 0) THEN DistrictNoID = NULL; IF (WeatherID = 0) THEN WeatherID = NULL; IF (PositionInStreetID = 0) THEN PositionInStreetID = NULL; IF ((UpperManhole IS NOT NULL) AND (UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((LowerManhole IS NOT NULL) AND (LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID=:StructureID INTO :ScanCamInspectionID; EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID,:ScanCamInspectionID,:Number,:CodeDigit,:InspDate,:Street,:StreetCode, :Zip,:City,:BuildYear,:ReportNo, :GroundWaterLevel, :FlowDirectionID,:InspectionModeID,:InspectionMode,:OrdererPresent, :ContractorPresent,:InnerProtectionID,:SewerTypeID,:MaterialID,:ProfileTypeID,:ProfileHeight,:ProfileWidth, :ReachLength,:Judgement,:Timepoint,:PictureQuality,:VideoCounter,:VideoTape,:SectionNo,:ResponsiblePerson, :SitePlanNo,:MunicipalCode,:DistrictNoID,:DistrictNo,:CityMapPageNo,:StreetSurface, :WeatherID,:Weather,:SewerNo,:Scale,:PipeLength,:WaterProtectionZone,:PositionInStreetID,:PositionInStreet,:SewerageDistrict,:EndOfGuarantee, :EndOfGuaranteeDate,:CleaningDate,:Queue,:TypeOfSealing,:Flag,:InspectionLength,:Comment1,:Comment2); UPDATE Reach SET UpperManholeID=:UpperManholeID,LowerManholeID=:LowerManholeID,StartMeter=:StartMeter,EndMeter=:EndMeter, RTI_U=:RTI_U,RTI_D=:RTI_D,GTI_U=:GTI_U,GTI_D=:GTI_D,RTG_U=:RTG_U,RTG_D=:RTG_D WHERE StructureID = :StructureID; UPDATE ScanCamInspection SET ReferenceDNMode=:ReferenceDNMode WHERE ScanCamInspectionID=:ScanCamInspectionID; END @IGNORE PICO-666 WALTER TABLE Project ADD OrderDesignation varchar(256), ADD OrderIdentification integer COMMIT xCREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256), OrderDesignation varchar(256), OrderIdentification integer) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, InspReferencePoint, ManhInspDirUpwards, UniqueKey, OrderDesignation, OrderIdentification) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :InspReferencePoint, :ManhInspDirUpwards, :UniqueKey, :OrderDesignation, :OrderIdentification); END CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, OrderDesignation varchar(256), OrderIdentification integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, InspReferencePoint = :InspReferencePoint, ManhInspDirUpwards = :ManhInspDirUpwards, OrderDesignation = :OrderDesignation, OrderIdentification = :OrderIdentification WHERE ProjectID = :ID; END ,CREATE OR ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, PictureFormat varchar(256), FilmFormatID integer, FilmFormat varchar(256), DefaultExporter varchar(256), ManhInspDirUpwards smallint, IsActive smallint, InspReferencePoint varchar(256), UniqueKey varchar(256), OrderDesignation varchar(256), OrderIdentification integer ) AS BEGIN SELECT CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, P.PictureFormatID, PF.Name AS PictureFormat, P.FilmFormatID, FF.Name AS FilmFormat, DefaultExporter, ManhInspDirUpwards, InspReferencePoint, IsActive, UniqueKey, OrderDesignation, OrderIdentification FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID = PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID = FF.FilmFormatID WHERE ProjectID = :ID INTO :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :PictureFormat, :FilmFormatID, :FilmFormat, :DefaultExporter, :ManhInspDirUpwards, :InspReferencePoint, :IsActive, :UniqueKey, :OrderDesignation, :OrderIdentification; END @IGNORE PICO-690 ;ALTER TABLE Manhole ADD ConeFormID integer REFERENCES Abbr COMMIT CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), Screwed = :Screwed, ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID, ConeFormID = :ConeFormID WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, Screwed, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, ConeFormID, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :Screwed, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :ConeFormID, :IsActive, :ParentEventID, :ParentStructureID; END @IGNORE PICO-712 ]ALTER TABLE Manhole ADD ConeUpperDN integer, ADD ConeLowerDN integer, ADD ConeHeight integer COMMIT CREATE OR ALTER PROCEDURE WriteManhole(ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), Screwed = :Screwed, ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID, ConeFormID = :ConeFormID, ConeUpperDN = :ConeUpperDN, ConeLowerDN = :ConeLowerDN, ConeHeight = :ConeHeight WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, Screwed, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, ConeFormID, ConeUpperDN, ConeLowerDN, ConeHeight, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :Screwed, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :ConeFormID, :ConeUpperDN, :ConeLowerDN, :ConeHeight, :IsActive, :ParentEventID, :ParentStructureID; END @IGNORE PICO-725  CREATE OR ALTER PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS DECLARE VARIABLE cnt integer; BEGIN SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID) || ' _reaches ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID)|| ' _connections ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM FILM INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PICTURE INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PressureInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM JointPressureTest INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM JointPressureTest)||' _testedJoints' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM InclMeasurement INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM InclMeasurement)||' _inclinationMeasurements' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM ScanCamInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM ScanCamInspection)||' _ScanCamInspections' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END -ALTER TABLE Event ADD JointAngleOffset float COMMIT CREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, JointAngleOffset float, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, RouteDamage varchar(256), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, JointAngleOffset, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart) VALUES(:EventID, :TVInspectionID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :JointAngleOffset, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:ChildStructureID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart); END CREATE OR ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, JointAngleOffset float, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, PictureCnt integer, ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256)) AS BEGIN SELECT StructureID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, JointAngleOffset, Mode, InternalPathLength, PathLength, Measure1, U1.Name, Measure2, U2.Name, E.VideoCounter, RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID = :EventID) AS PictureCnt, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID = :EventID INTO :StructureID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :JointAngleOffset, :Mode, :InternalPathLength, :PathLength, :Measure1, :Unit1, :Measure2, :Unit2, :VideoCounter, :RouteDamageID, :PictureCnt, :ChildStructureID, :AdditionalCodeID, :ManholePartID, :ManholePart; END @IGNORE RECREATE TABLE MapPoint(MapPointID integer NOT NULL PRIMARY KEY, CoordX double precision, CoordY double precision, StructureID integer, EventID integer, Counter integer) CREATE GENERATOR MapPoint_GEN @IGNORE @IGNORE @IGNORE CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END $CREATE GENERATOR PictureCounter_gen COMMIT CREATE OR ALTER PROCEDURE WritePicture(ID integer, StructureID integer, EventID integer, Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Multimedia_gen, 1); END MultimediaID = ID; SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO Multimedia(MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); UPDATE OR INSERT INTO Picture(MultimediaID, EventID) VALUES (:MultimediaID, NULLIF(:EventID, 0)); ID = GEN_ID(PictureCounter_gen, 1); END CCREATE OR ALTER PROCEDURE WritePressureInsp(ID integer, ModeID integer, Number varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), Street varchar(256), InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), StreetCode varchar(256), City varchar(256), InspDate date, ZIP varchar(256), CodeDigit varchar(256), FlowDirectionID integer, SewerTypeID integer, InnerProtectionID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, InspectedTubeLength float, VideoTape varchar(256), ResponsiblePerson varchar(256), SectionNo varchar(256), BuildYear integer, Device varchar(256), Norm varchar(256), NominalPressure float, Reference float, NominalTime time, NominalSedation time, TypeOfSealing varchar(256), Weather varchar(256), PipeLength float, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, Volume float, SurfaceArea float, ReportNo integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), JobNo varchar(256), GroundWaterLevel varchar(256), SepDescription varchar(256), SepManufacturer varchar(256), SepModel varchar(256), WaterLevel float, NominalSize float) RETURNS(PressureInspectionID integer, StructureID integer) AS DECLARE VARIABLE ModeCode varchar(256); DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE PressureTestDataID integer; BEGIN SELECT ATX.Code FROM AbbrText ATX WHERE AbbrID = :ModeID INTO :ModeCode; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); PressureInspectionID = GEN_ID(PressureInspection_gen, 1); PressureTestDataID = GEN_ID(PressureTestData_gen, 1); END ELSE BEGIN SELECT FIRST 1 PressureInspectionID FROM PressureInspection WHERE StructureID=:ID INTO :PressureInspectionID; SELECT FIRST 1 PressureTestDataID FROM PressureInspection WHERE StructureID=:ID INTO :PressureTestDataID; END StructureID = ID; UPDATE OR INSERT INTO Structure (StructureID, Number, CodeDigit, InspDate, Street, StreetCode, ZIP, City, BuildYear, ReportNo,GroundWaterLevel) VALUES (:StructureID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :ZIP, :City, :BuildYear, :ReportNo, :GroundWaterLevel); IF (ModeCode LIKE 'S%') THEN UPDATE OR INSERT INTO Manhole(StructureID, LowerPartMaterialID, WaterProtectionZone, WaterProtectionZoneID) VALUES (:StructureID, NULLIF(:MaterialID, 0), :WaterProtectionZone, :WaterProtectionZoneID); ELSE IF ((ModeCode LIKE 'M%') OR (ModeCode LIKE 'H%')) THEN BEGIN UPDATE OR INSERT INTO PipeStructure(StructureID, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, PipeLength, WaterProtectionZone, WaterProtectionZoneID) VALUES (:StructureID, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0),NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :PipeLength, :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0)); IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); ELSE UpperManholeID = NULL; IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); ELSE LowerManholeID = NULL; UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID) VALUES (:StructureID, :UpperManholeID, :LowerManholeID); END ELSE IF (ModeCode LIKE 'A%') THEN /*Separator*/ UPDATE OR INSERT INTO Separator(StructureID, Description, Manufacturer, MaterialID, Model, NominalSize) VALUES (:StructureID, :SepDescription, :SepManufacturer, NULLIF(:MaterialID, 0), :SepModel, :NominalSize); UPDATE OR INSERT INTO PressureTestData(PressureTestDataID, NominalPressure, Reference, NominalTestTime, NominalSedation, Volume, SurfaceArea) VALUES (:PressureTestDataID, :NominalPressure, :Reference, :NominalTime, :NominalSedation, :Volume, :SurfaceArea); UPDATE OR INSERT INTO PressureInspection(PressureInspectionID, StructureID, FlowDirectionID, OrdererPresent, ContractorPresent, TypeOfSealing, Weather, Device, ModeID, Norm, ResponsiblePerson, SectionNo, Flag, Comment1, Comment2, JobNo, PressureTestDataID, InspectedTubeLength, VideoTape, WaterLevel) VALUES (:PressureInspectionID, :StructureID, NULLIF(:FlowDirectionID, 0), :OrdererPresent, :ContractorPresent, :TypeOfSealing, :Weather, :Device, NULLIF(:ModeID, 0), :Norm, :ResponsiblePerson, :SectionNo, NULL, :Comment1, :Comment2, :JobNo, :PressureTestDataID, :InspectedTubeLength, :VideoTape, :WaterLevel); END @IGNORE PICO-748 /ALTER TABLE Event ADD RouteDamageIndex integer COMMIT LCREATE OR ALTER PROCEDURE WriteEvent(ID integer, StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, JointAngleOffset float, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, RouteDamage varchar(256), ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256), RouteDamageIndex integer) RETURNS (EventID integer) AS DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; DECLARE VARIABLE TVInspectionID integer; BEGIN IF (ID <= 0) THEN ID = GEN_ID(Event_gen, 1); EventID = ID; SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; IF ((CodeID IS NULL) OR (CodeID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:Code,:Mode) RETURNING_VALUES(:CodeID); END EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); IF ((RouteDamageID IS NULL) OR (RouteDamageID = 0)) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:RouteDamage, 'T') RETURNING_VALUES (:RouteDamageID); END UPDATE OR INSERT INTO AbstractEvent(EventID) VALUES (:EventID); UPDATE OR INSERT INTO Event(EventID, TVInspectionID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, JointAngleOffset, Mode, InternalPathLength, PathLength, Measure1, Unit1ID, Measure2, Unit2ID, VideoCounter, RouteDamageID, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart, RouteDamageIndex) VALUES(:EventID, :TVInspectionID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :JointAngleOffset, :Mode, :InternalPathLength, :PathLength, :Measure1, NULLIF(:Unit1ID, 0), :Measure2, NULLIF(:Unit2ID, 0), :VideoCounter, NULLIF(:RouteDamageID, 0), NULLIF(:ChildStructureID, 0), NULLIF(:AdditionalCodeID, 0), NULLIF(:ManholePartID, 0), :ManholePart, :RouteDamageIndex); END CREATE OR ALTER PROCEDURE GetEventByID(EventID integer) RETURNS (StructureID integer, Counter integer, CodeID integer, Code varchar(256), Comment varchar(256), Class char(1), Joint smallint, PositionFrom float, PositionTo float, JointAngle smallint, JointAngleOffset float, Mode char(1), InternalPathLength float, PathLength float, Measure1 float, Unit1 varchar(256), Measure2 float, Unit2 varchar(256), VideoCounter time, RouteDamageID integer, PictureCnt integer, ChildStructureID integer, AdditionalCodeID integer, ManholePartID integer, ManholePart varchar(256), RouteDamageIndex integer) AS BEGIN SELECT StructureID, Counter, CodeID, Comment, Class, Joint, PositionFrom, PositionTo, JointAngle, JointAngleOffset, Mode, InternalPathLength, PathLength, Measure1, U1.Name, Measure2, U2.Name, E.VideoCounter, RouteDamageID, (SELECT count(*) FROM Picture WHERE EventID = :EventID) AS PictureCnt, ChildStructureID, AdditionalCodeID, ManholePartID, ManholePart, RouteDamageIndex FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID LEFT OUTER JOIN Unit U1 ON E.Unit1ID = U1.UnitID LEFT OUTER JOIN Unit U2 ON E.Unit2ID = U2.UnitID WHERE E.EventID = :EventID INTO :StructureID, :Counter, :CodeID, :Comment, :Class, :Joint, :PositionFrom, :PositionTo, :JointAngle, :JointAngleOffset, :Mode, :InternalPathLength, :PathLength, :Measure1, :Unit1, :Measure2, :Unit2, :VideoCounter, :RouteDamageID, :PictureCnt, :ChildStructureID, :AdditionalCodeID, :ManholePartID, :ManholePart, RouteDamageIndex; END EXECUTE BLOCK AS DECLARE VARIABLE Dummy integer; BEGIN EXECUTE PROCEDURE AddSpecialAbbrClass(0, 'SCH', 'Schacht', 1) RETURNING_VALUES(:Dummy); END 'CREATE GENERATOR ReportNo_KampacHM_gen "EXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; DECLARE VARIABLE setName varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES setName; EXECUTE PROCEDURE AddAbbr(setName,'LK','HM','Haltung Wasser Manuell',NULL,NULL,NULL,NULL,0,1,'', NULL, NULL) RETURNING_VALUES AbbrID; END 7ALTER TABLE PipeStructure ADD CompletePipeLength float COMMIT !CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, CompletePipeLength = :CompletePipeLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, OriginProfileDimID = NULLIF(:OriginProfileDimID, 0), OriginMaterialID = NULLIF(:OriginMaterialID, 0), TypeOfInflowID = NULLIF(:TypeOfInflowID, 0), TypeOfOutflowID = NULLIF(:TypeOfOutflowID, 0), WaterProtectionZone =: WaterProtectionZone, WaterProtectionZoneID =: WaterProtectionZoneID, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, TypeOfSealingID = :TypeOfSealingID, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END OCREATE OR ALTER PROCEDURE WriteReach (ID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, CompletePipeLength float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END _CREATE TABLE DrinkingWaterNode( StructureID integer NOT NULL PRIMARY KEY REFERENCES Structure) cCREATE TABLE DrinkingWaterPipe( StructureID integer NOT NULL PRIMARY KEY REFERENCES PipeStructure, StartNodeID integer REFERENCES DrinkingWaterNode, EndNodeID integer REFERENCES DrinkingWaterNode, InspTypeID integer REFERENCES Abbr, InspPlaceID integer REFERENCES Abbr, PipeTypeID integer REFERENCES Abbr, PipeAgeID integer REFERENCES Abbr, UsageID integer REFERENCES Abbr, CostCenter varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), OrderNo varchar(256) ) COMMIT CREATE OR ALTER PROCEDURE FindDrinkingWaterNode(Number varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN DrinkingWaterNode N ON S.StructureID = N.StructureID WHERE S.Number = :Number ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number) VALUES (:StructureID, :Number); INSERT INTO DrinkingWaterNode(StructureID) VALUES (:StructureID); END END CREATE OR ALTER PROCEDURE GetDrinkingWaterPipeByID(StructureID integer) RETURNS(Number varchar(256), InspDate date, Street varchar(256), City varchar(256), StartNode varchar(256), EndNode varchar(256), InspTypeID integer, InspPlaceID integer, PipeTypeID integer, PipeAgeID integer, MaterialID integer, ProfileWidth integer, UsageID integer, CostCenter varchar(256), VideoTape varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Judgement varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), ReachLength float, InspectionLength float, Comment varchar(1000), OrderNo varchar(256), Timepoint timestamp) AS BEGIN SELECT S.Number, S.InspDate, S.Street, S.City, SN.Number, EN.Number, InspTypeID, InspPlaceID, PipeTypeID, PipeAgeID, MaterialID, ProfileWidth, UsageID, CostCenter, VideoTape, Construction, Department, Foreman, Welder, Judgement, Conclusion, PipeClean, Claim, NextInspection, ReachLength, InspectionLength, Comment1, OrderNo, Timepoint FROM DrinkingWaterPipe DWP INNER JOIN PipeStructure PS ON DWP.StructureID = PS.StructureID INNER JOIN Structure S ON PS.StructureID = S.StructureID INNER JOIN TVInspection I ON I.StructureID = S.StructureID LEFT OUTER JOIN Structure SN ON DWP.StartNodeID = SN.StructureID LEFT OUTER JOIN Structure EN ON DWP.EndNodeID = EN.StructureID WHERE S.StructureID = :StructureID INTO :Number, :InspDate, :Street, :City, :StartNode, :EndNode, :InspTypeID, :InspPlaceID, :PipeTypeID, :PipeAgeID, :MaterialID, :ProfileWidth, :UsageID, :CostCenter, :VideoTape, :Construction, :Department, :Foreman, :Welder, :Judgement, :Conclusion, :PipeClean, :Claim, :NextInspection, :ReachLength, :InspectionLength, :Comment, :OrderNo, :Timepoint; END 9 CREATE OR ALTER PROCEDURE WriteDrinkingWaterPipe(ID integer, Number varchar(256), InspDate date, Street varchar(256), City varchar(256), StartNode varchar(256), EndNode varchar(256), InspTypeID integer, InspPlaceID integer, PipeTypeID integer, PipeAgeID integer, MaterialID integer, ProfileWidth integer, UsageID integer, CostCenter varchar(256), VideoTape varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Judgement varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), ReachLength float, InspectionLength float, Comment varchar(1000), OrderNo varchar(256), Timepoint timestamp) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE StartNodeID integer; DECLARE VARIABLE EndNodeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:StartNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:StartNode) RETURNING_VALUES (:StartNodeID); END ELSE BEGIN StartNodeID = NULL; END IF (NULLIF(:EndNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:EndNode) RETURNING_VALUES (:EndNodeID); END ELSE BEGIN EndNodeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :Number, Null, :InspDate, :Street, NULL, NULL, :City, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULLIF(:MaterialID, 0), NULL, :ProfileWidth, :ProfileWidth, :ReachLength, NULL, :Judgement, :Timepoint, NULL, NULL, :VideoTape, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :InspectionLength, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :Comment, NULL); UPDATE OR INSERT INTO DrinkingWaterPipe(StructureID, StartNodeID, EndNodeID, InspTypeID, InspPlaceID, PipeTypeID, PipeAgeID, UsageID, CostCenter, Construction, Department, Foreman, Welder, Conclusion, PipeClean, Claim, NextInspection, OrderNo) VALUES (:StructureID, :StartNodeID, :EndNodeID, NULLIF(:InspTypeID, 0), NULLIF(:InspPlaceID, 0), NULLIF(:PipeTypeID, 0), NULLIF(:PipeAgeID, 0), NULLIF(:UsageID, 0), :CostCenter, :Construction, :Department, :Foreman, :Welder, :Conclusion, :PipeClean, :Claim, :NextInspection, :OrderNo); END  CREATE OR ALTER PROCEDURE DBStat RETURNS (Stat varchar(1024)) AS DECLARE VARIABLE cnt integer; BEGIN SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Reach R INNER JOIN TVInspection I ON I.StructureID=R.StructureID) || ' _reaches ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN Reach R ON PS.StructureID=R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=R.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM HouseConnection R INNER JOIN TVInspection I ON I.StructureID=R.StructureID)|| ' _connections ( '|| (SELECT round(sum(InspectionLength), 2) FROM PipeStructure PS INNER JOIN HouseConnection HC ON PS.StructureID=HC.StructureID INNER JOIN TVInspection TV ON TV.StructureID=HC.StructureID)||' m)' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM Manhole M INNER JOIN Structure S ON M.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _manholes' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM DrinkingWaterPipe DWP INNER JOIN Structure S ON DWP.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM DrinkingWaterPipe DWP INNER JOIN Structure S ON DWP.StructureID=S.StructureID INNER JOIN TVInspection I ON I.StructureID=S.StructureID WHERE InspDate IS NOT NULL)||' _DrinkingWaterPipes' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM FILM INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM FILM)||' _films' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PICTURE INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PICTURE)||' _photos' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM PressureInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM PressureInspection)||' _pressureTests' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM JointPressureTest INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM JointPressureTest)||' _testedJoints' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM InclMeasurement INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM InclMeasurement)||' _inclinationMeasurements' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT count(*) FROM ScanCamInspection INTO :cnt; IF (:cnt > 0) THEN BEGIN SELECT (SELECT count(*) FROM ScanCamInspection)||' _ScanCamInspections' FROM RDB$DATABASE INTO :Stat; SUSPEND; END SELECT '_Dictionary: '||(SELECT FIRST 1 Name FROM AbbrSet) FROM RDB$DATABASE INTO :Stat; SUSPEND; END @IGNORE CREATE OR ALTER PROCEDURE AddSpecialAbbrClass(SpecialID integer, Code varchar(256), FullText varchar(256), LanguageID integer) RETURNS(SpecialAbbrClassID integer) AS DECLARE VARIABLE Dummy integer; BEGIN SELECT FIRST 1 SpecialAbbrClassID FROM SpecialAbbrClass WHERE Code = :Code INTO :Dummy; IF (:Dummy > 0) THEN BEGIN SpecialID = Dummy; END IF (COALESCE(SpecialID, 0) = 0) THEN SELECT COALESCE(Max(SpecialAbbrClassID) + 1, 1) FROM SpecialAbbrClass INTO :SpecialID; UPDATE OR INSERT INTO SpecialAbbrClass(SpecialAbbrClassID, Code) VALUES (:SpecialID, :Code); UPDATE OR INSERT INTO SpecialAbbrClassText(SpecialAbbrClassID, LanguageID, FullText) VALUES (:SpecialID, :LanguageID, :FullText); SpecialAbbrClassID = SpecialID; END COMMIT EXECUTE BLOCK AS DECLARE VARIABLE Dummy integer; BEGIN DELETE FROM DEBUGLOG; EXECUTE PROCEDURE AddSpecialAbbrClass(1, 'A', 'Abbruch', 1) RETURNING_VALUES(:Dummy); INSERT INTO Debuglog(msg) values ('['||cast(:Dummy as char(3))||']'); EXECUTE PROCEDURE AddSpecialAbbrClass(0, 'RUND', 'Runde Form', 1) RETURNING_VALUES(:Dummy); INSERT INTO Debuglog(msg) values ('['||cast(:Dummy as char(3))||']'); END @IGNORE PICO-881 GALTER TABLE Structure ADD ObjectID varchar(256), ADD IsLocked smallint COMMIT |CREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET ObjectID = :ObjectID, IsLocked = :IsLocked, Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, CompletePipeLength = :CompletePipeLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, OriginProfileDimID = NULLIF(:OriginProfileDimID, 0), OriginMaterialID = NULLIF(:OriginMaterialID, 0), TypeOfInflowID = NULLIF(:TypeOfInflowID, 0), TypeOfOutflowID = NULLIF(:TypeOfOutflowID, 0), WaterProtectionZone =: WaterProtectionZone, WaterProtectionZoneID =: WaterProtectionZoneID, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, TypeOfSealingID = :TypeOfSealingID, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END 4CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, ObjectID varchar(256), IsLocked smallint, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, CompletePipeLength float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END <CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END mCREATE OR ALTER PROCEDURE GetDrinkingWaterPipeByID(StructureID integer) RETURNS(ObjectID varchar(256), IsLocked smallint, Number varchar(256), InspDate date, Street varchar(256), City varchar(256), StartNode varchar(256), EndNode varchar(256), InspTypeID integer, InspPlaceID integer, PipeTypeID integer, PipeAgeID integer, MaterialID integer, ProfileWidth integer, UsageID integer, CostCenter varchar(256), VideoTape varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Judgement varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), ReachLength float, InspectionLength float, Comment varchar(1000), OrderNo varchar(256), Timepoint timestamp) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.InspDate, S.Street, S.City, SN.Number, EN.Number, InspTypeID, InspPlaceID, PipeTypeID, PipeAgeID, MaterialID, ProfileWidth, UsageID, CostCenter, VideoTape, Construction, Department, Foreman, Welder, Judgement, Conclusion, PipeClean, Claim, NextInspection, ReachLength, InspectionLength, Comment1, OrderNo, Timepoint FROM DrinkingWaterPipe DWP INNER JOIN PipeStructure PS ON DWP.StructureID = PS.StructureID INNER JOIN Structure S ON PS.StructureID = S.StructureID INNER JOIN TVInspection I ON I.StructureID = S.StructureID LEFT OUTER JOIN Structure SN ON DWP.StartNodeID = SN.StructureID LEFT OUTER JOIN Structure EN ON DWP.EndNodeID = EN.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :InspDate, :Street, :City, :StartNode, :EndNode, :InspTypeID, :InspPlaceID, :PipeTypeID, :PipeAgeID, :MaterialID, :ProfileWidth, :UsageID, :CostCenter, :VideoTape, :Construction, :Department, :Foreman, :Welder, :Judgement, :Conclusion, :PipeClean, :Claim, :NextInspection, :ReachLength, :InspectionLength, :Comment, :OrderNo, :Timepoint; END { CREATE OR ALTER PROCEDURE WriteDrinkingWaterPipe(ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), InspDate date, Street varchar(256), City varchar(256), StartNode varchar(256), EndNode varchar(256), InspTypeID integer, InspPlaceID integer, PipeTypeID integer, PipeAgeID integer, MaterialID integer, ProfileWidth integer, UsageID integer, CostCenter varchar(256), VideoTape varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Judgement varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), ReachLength float, InspectionLength float, Comment varchar(1000), OrderNo varchar(256), Timepoint timestamp) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE StartNodeID integer; DECLARE VARIABLE EndNodeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:StartNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:StartNode) RETURNING_VALUES (:StartNodeID); END ELSE BEGIN StartNodeID = NULL; END IF (NULLIF(:EndNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:EndNode) RETURNING_VALUES (:EndNodeID); END ELSE BEGIN EndNodeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, Null, :InspDate, :Street, NULL, NULL, :City, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULLIF(:MaterialID, 0), NULL, :ProfileWidth, :ProfileWidth, :ReachLength, NULL, :Judgement, :Timepoint, NULL, NULL, :VideoTape, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :InspectionLength, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :Comment, NULL); UPDATE OR INSERT INTO DrinkingWaterPipe(StructureID, StartNodeID, EndNodeID, InspTypeID, InspPlaceID, PipeTypeID, PipeAgeID, UsageID, CostCenter, Construction, Department, Foreman, Welder, Conclusion, PipeClean, Claim, NextInspection, OrderNo) VALUES (:StructureID, :StartNodeID, :EndNodeID, NULLIF(:InspTypeID, 0), NULLIF(:InspPlaceID, 0), NULLIF(:PipeTypeID, 0), NULLIF(:PipeAgeID, 0), NULLIF(:UsageID, 0), :CostCenter, :Construction, :Department, :Foreman, :Welder, :Conclusion, :PipeClean, :Claim, :NextInspection, :OrderNo); END CREATE OR ALTER PROCEDURE WriteManhole(ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, SewerTypeID integer, StructureTypeID integer, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET ObjectID = :ObjectID, IsLocked = :IsLocked, Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), Screwed = :Screwed, ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID, ConeFormID = :ConeFormID, ConeUpperDN = :ConeUpperDN, ConeLowerDN = :ConeLowerDN, ConeHeight = :ConeHeight WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, IsActive smallint, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 ObjectID, IsLocked, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, Screwed, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, ConeFormID, ConeUpperDN, ConeLowerDN, ConeHeight, S.IsActive, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :Screwed, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :ConeFormID, :ConeUpperDN, :ConeLowerDN, :ConeHeight, :IsActive, :ParentEventID, :ParentStructureID; END ;ALTER TABLE PressureTestedHouseConnection ADD Mode integer ALTER TABLE MapPoint ADD CoordZ double precision, ADD Timepoint timestamp, ADD PathLength float, ADD Yaw float, ADD Pitch float -ALTER TABLE MapPoint ADD IsModified smallint CREATE OR ALTER PROCEDURE DELETERULE ( WIZARD Varchar(50), WIZARDFIELD Varchar(50), RULENAME Varchar(100) ) AS DECLARE VARIABLE WizardFieldID integer; BEGIN SELECT F.WizardFieldID FROM Wizard W INNER JOIN WizardField F ON W.WizardID=F.WizardID WHERE W.Name=:Wizard AND F.Name=:WizardField INTO :WizardFieldID; IF ((WIZARD IS NOT NULL) AND (WIZARDFIELD IS NOT NULL)) THEN BEGIN IF (WizardFieldID IS NOT NULL) THEN BEGIN DELETE FROM Rule WHERE WizardFieldID=:WizardFieldID AND Name=:RuleName; END END ELSE BEGIN DELETE FROM Rule WHERE WizardFieldID IS NULL AND Name=:RuleName; END END; CREATE OR ALTER PROCEDURE AddRule (WizardName varchar(256), WizardFieldName varchar(256), RuleName varchar(256), RuleCode varchar(8191)) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name = :RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = :RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code = :RuleCode WHERE RuleID = :RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule(RuleID, WizardFieldID, Name, Code) VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END CREATE OR ALTER PROCEDURE UpdatePipeStructureSC(StructureID integer, ScanCamInspectionID integer, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight integer, ProfileWidth integer, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, Comment1 varchar(256), Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(256); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((NULLIF(:InspectionModeID, 0) IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10),'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((NULLIF(:DistrictNoID, 0) IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WaterProtectionZone = :WaterProtectionZone, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE ScanCamInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0),InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, Queue = :Queue, TypeOfSealing = :TypeOfSealing, Flag = :Flag, InspectionLength = :InspectionLength, Comment1 = :Comment1, Comment2 = :Comment2 WHERE ScanCamInspectionID = :ScanCamInspectionID; END CREATE OR ALTER PROCEDURE WriteScanCamInspection (ID integer, Number varchar(256),CodeDigit varchar(256),InspDate date,Street varchar(256),StreetCode varchar(256), Zip varchar(256),City varchar(256),BuildYear integer,ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256),FlowDirectionID integer,InspectionModeID integer,InspectionMode varchar(256), OrdererPresent varchar(256),ContractorPresent varchar(256),InnerProtectionID integer,SewerTypeID integer, MaterialID integer,ProfileTypeID integer,ProfileHeight integer,ProfileWidth integer, ReachLength float,Judgement varchar(256),Timepoint timestamp,PictureQuality varchar(256), VideoCounter varchar(256),VideoTape varchar(256),SectionNo varchar(256),ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256),DistrictNoID integer,DistrictNo varchar(256), CityMapPageNo varchar(256),StreetSurface varchar(256),WeatherID integer,Weather varchar(256),SewerNo varchar(256),Scale integer, PipeLength float,WaterProtectionZone varchar(256),PositionInStreetID integer, PositionInStreet varchar(256),SewerageDistrict varchar(256),EndOfGuarantee varchar(256),EndOfGuaranteeDate date, CleaningDate date,Queue varchar(256),TypeOfSealing varchar(256),Flag varchar(256), InspectionLength float,Comment1 varchar(256),Comment2 varchar(256), GroupingCode varchar(256), StartMeter integer,EndMeter integer, RTI_U float,RTI_D float,GTI_U float,GTI_D float,RTG_U float,RTG_D float, ReferenceDNMode integer) RETURNS (StructureID integer) AS DECLARE VARIABLE UpperManholeID integer; DECLARE VARIABLE LowerManholeID integer; DECLARE VARIABLE ScanCamInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 ScanCamInspectionID FROM ScanCamInspection WHERE StructureID = :StructureID INTO :ScanCamInspectionID; IF (ScanCamInspectionID IS NULL) THEN BEGIN ScanCamInspectionID = GEN_ID(ScanCamInspection_gen, 1); INSERT INTO ScanCamInspection(ScanCamInspectionID, StructureID) VALUES (:ScanCamInspectionID, :StructureID); END IF ((:UpperManhole IS NOT NULL) AND (:UpperManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END IF ((:LowerManhole IS NOT NULL) AND (:LowerManhole <> '')) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END EXECUTE PROCEDURE UpdatePipeStructureSC(:StructureID, :ScanCamInspectionID, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo,:CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WaterProtectionZone, NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2); UPDATE Reach SET UpperManholeID = :UpperManholeID, LowerManholeID = :LowerManholeID, StartMeter = :StartMeter, EndMeter = :EndMeter, RTI_U = :RTI_U, RTI_D = :RTI_D, GTI_U = :GTI_U, GTI_D = :GTI_D, RTG_U = :RTG_U, RTG_D = :RTG_D WHERE StructureID = :StructureID; UPDATE ScanCamInspection SET ReferenceDNMode = :ReferenceDNMode WHERE ScanCamInspectionID = :ScanCamInspectionID; END CREATE OR ALTER PROCEDURE GetScanCamInspectionByID(StructureID integer) RETURNS(Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight integer, ProfileWidth integer, ReachLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WaterProtectionZone varchar(256), PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), Flag varchar(256), InspectionLength float, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, ReferenceDNMode integer, IsActive smallint) AS BEGIN SELECT S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, FlowDirectionID, InspectionModeID, InspectionMode, OrdererPresent, ContractorPresent, InnerProtectionID, SewerTypeID, MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, Judgement, Timepoint, PictureQuality, VideoCounter, VideoTape, SectionNo, ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, CityMapPageNo, StreetSurface, WeatherID, Weather, SewerNo, Scale, PipeLength, WaterProtectionZone, PositionInStreetID, PositionInStreet, SewerageDistrict, EndOfGuarantee, EndOfGuaranteeDate, CleaningDate, Queue, TypeOfSealing, Flag, InspectionLength, Comment1, Comment2, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, SC.ReferenceDNMode, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN ScanCamInspection SC ON SC.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID WHERE S.StructureID = :StructureID INTO :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :Judgement,:Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WaterProtectionZone, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :Flag, :InspectionLength, :Comment1, :Comment2, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :ReferenceDNMode, :IsActive; END @IGNORE DROP PROCEDURE AddRule; @IGNORE DROP PROCEDURE GetRule; ,@IGNORE ALTER TABLE Rule ADD code_blb blob; @IGNORE COMMIT )@IGNORE UPDATE Rule SET code_blb = code; @IGNORE COMMIT $@IGNORE ALTER TABLE Rule DROP Code; 1@IGNORE ALTER TABLE Rule ALTER code_blb TO code; @IGNORE @IGNORE @IGNORE CREATE OR ALTER PROCEDURE ADDRULE ( WIZARDNAME Varchar(256), WIZARDFIELDNAME Varchar(256), RULENAME Varchar(256), RULECODE blob ) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name = :RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = :RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code = :RuleCode WHERE RuleID = :RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END @IGNORE CREATE OR ALTER PROCEDURE GETRULE ( WIZARD Varchar(256), WIZARDFIELD Varchar(256), RULENAME Varchar(256) ) RETURNS ( RULECODE blob ) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID = R.WizardFieldID INNER JOIN Wizard W ON W.WizardID = F.WizardID WHERE R.Name = :RuleName ORDER BY R.RuleID INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName ORDER BY RuleID INTO :RuleCode; END END 8CREATE OR ALTER PROCEDURE FindManhole(Number varchar(256), GroupingCode varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE S.Number = :Number AND ((COALESCE(:GroupingCode, '') = '' AND COALESCE(S.GroupingCode, '') = '') OR :GroupingCode = S.GroupingCode) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN EXECUTE PROCEDURE WriteManhole(NULL, NULL, NULL, :Number, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :GroupingCode, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL) RETURNING_VALUES (:StructureID); END END +@IGNORE --Javascript rule issues PICOXE-24 9ALTER TABLE HouseConnection ADD LevelInHierarchy integer COMMIT CREATE OR ALTER PROCEDURE UpdateHCLevel(ID integer) RETURNS (HCLevel integer) AS DECLARE VARIABLE ParentID integer; DECLARE VARIABLE ParentLevel integer; BEGIN SELECT FIRST 1 MasterStructureID FROM LStructureStructure WHERE StructureID = :ID INTO :ParentID; IF (:ParentID IS NULL) THEN BEGIN HCLevel = 0; END ELSE BEGIN SELECT LevelInHierarchy FROM HouseConnection WHERE StructureID = :ParentID INTO :ParentLevel; IF (ParentLevel IS NULL) THEN BEGIN EXECUTE PROCEDURE UpdateHCLevel(:ParentID) RETURNING_VALUES(:ParentLevel); END HCLevel = ParentLevel + 1; END UPDATE HouseConnection SET LevelInHierarchy = :HCLevel WHERE StructureID = :ID; END COMMIT 4CREATE OR ALTER PROCEDURE UpdateHCLevels AS DECLARE VARIABLE SID integer; DECLARE VARIABLE Dummy integer; BEGIN UPDATE HouseConnection SET LevelInHierarchy = NULL; FOR SELECT StructureID FROM HouseConnection INTO :SID DO BEGIN EXECUTE PROCEDURE UpdateHCLevel(:SID) RETURNING_VALUES(:Dummy); END END COMMIT BCREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, ObjectID varchar(256), IsLocked smallint, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, CompletePipeLength float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; EXECUTE PROCEDURE UpdateHCLevels; END $CREATE OR ALTER PROCEDURE DeleteHouseConnection (StructureID integer) AS BEGIN DELETE FROM HouseConnection WHERE StructureID = :StructureID; DELETE FROM PipeStructure WHERE StructureID = :StructureID; EXECUTE PROCEDURE DeleteStructure(:StructureID); EXECUTE PROCEDURE UpdateHCLevels; END ?EXECUTE BLOCK AS BEGIN EXECUTE PROCEDURE UpdateHCLevels; END @IGNORE PICO-1007 ALTER TABLE PipeStructure ADD TypeOfStructureInflowID INTEGER REFERENCES Abbr, ADD TypeOfStructureOutflowID INTEGER REFERENCES Abbr COMMIT ACREATE OR ALTER PROCEDURE UpdatePipeStructure(StructureID integer, TVInspectionID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256),Comment2 varchar(256)) AS DECLARE VARIABLE AbbrSet varchar(40); BEGIN EXECUTE PROCEDURE AbbrSetName RETURNING_VALUES(:AbbrSet); IF ((:InspectionModeID IS NULL) AND ((:InspectionMode IS NOT NULL) AND (:InspectionMode <> ''))) THEN BEGIN IF ((:AbbrSet LIKE '%DORSTEN%') OR (:AbbrSet LIKE '%ISYBAU06%') OR (:AbbrSet LIKE '%ATVM149%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'U') RETURNING_VALUES (:InspectionModeID); END IF (:AbbrSet LIKE '%NASSCO%') THEN BEGIN EXECUTE PROCEDURE FindAbbr(SUBSTRING(:InspectionMode FROM 1 FOR 10), 'P2') RETURNING_VALUES (:InspectionModeID); END END IF ((:DistrictNoID IS NULL) AND ((:DistrictNo IS NOT NULL) AND (:DistrictNo <> '')) AND (:AbbrSet LIKE '%DORSTEN%')) THEN BEGIN EXECUTE PROCEDURE FindAbbr(:DistrictNo, 'O') RETURNING_VALUES (:DistrictNoID); END UPDATE Structure SET ObjectID = :ObjectID, IsLocked = :IsLocked, Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, StreetID = NULLIF(:StreetID, 0), PropertyID = NULLIF(:PropertyID, 0), FloodAreaID = NULLIF(:PropertyID, 0), StoppingUnitID = NULLIF(:StoppingUnitID, 0), MessageID = NULLIF(:MessageID, 0), AtmosphereID = NULLIF(:AtmosphereID, 0) WHERE StructureID = :StructureID; UPDATE PipeStructure SET InnerProtectionID = NULLIF(:InnerProtectionID, 0), SewerTypeID = NULLIF(:SewerTypeID, 0), MaterialID = NULLIF(:MaterialID, 0), ProfileTypeID = NULLIF(:ProfileTypeID, 0), ProfileHeight = :ProfileHeight, ProfileWidth = :ProfileWidth, ReachLength = :ReachLength, CompletePipeLength = :CompletePipeLength, SitePlanNo = :SitePlanNo, MunicipalCode = :MunicipalCode, DistrictNoID = NULLIF(:DistrictNoID, 0), DistrictNo = :DistrictNo, PipeLength = :PipeLength, WallThickness = :WallThickness, OriginProfileDimID = NULLIF(:OriginProfileDimID, 0), OriginMaterialID = NULLIF(:OriginMaterialID, 0), TypeOfInflowID = NULLIF(:TypeOfInflowID, 0), TypeOfOutflowID = NULLIF(:TypeOfOutflowID, 0), TypeOfStructureInflowID = NULLIF(:TypeOfStructureInflowID, 0), TypeOfStructureOutflowID = NULLIF(:TypeOfStructureOutflowID, 0), WaterProtectionZone =: WaterProtectionZone, WaterProtectionZoneID =: WaterProtectionZoneID, PositionInStreetID = NULLIF(:PositionInStreetID, 0), PositionInStreet = :PositionInStreet, SewerageDistrict = :SewerageDistrict WHERE StructureID = :StructureID; UPDATE TVInspection SET FlowDirectionID = NULLIF(:FlowDirectionID, 0), InspectionModeID = NULLIF(:InspectionModeID, 0), InspectionMode = :InspectionMode, OrdererPresent = :OrdererPresent, ContractorPresent = :ContractorPresent, Judgement = :Judgement, Timepoint = :Timepoint, PictureQuality = :PictureQuality, VideoCounter = :VideoCounter, VideoTape = :VideoTape, SectionNo = :SectionNo, ResponsiblePerson = :ResponsiblePerson, CityMapPageNo = :CityMapPageNo, StreetSurface = :StreetSurface, WeatherID = NULLIF(:WeatherID, 0), Weather = :Weather, SewerNo = :SewerNo, Scale = :Scale, EndOfGuarantee = :EndOfGuarantee, EndOfGuaranteeDate = :EndOfGuaranteeDate, CleaningDate = :CleaningDate, FlowControlID = NULLIF(:FlowControlID, 0), Queue = :Queue, TypeOfSealing = :TypeOfSealing, TypeOfSealingID = :TypeOfSealingID, Flag = :Flag, InspectionLength = :InspectionLength, ResponsiblePersonCertificateNo = :ResponsiblePersonCertificateNo, LocationDetails = :LocationDetails, RenovationYear = :RenovationYear, SewerCategory = :SewerCategory, PreCleaningID = NULLIF(:PreCleaningID, 0), DrainageArea = :DrainageArea, InspPurposeID = NULLIF(:InspPurposeID, 0), WaterControlID = NULLIF(:WaterControlID, 0), WayOfInspectionID = NULLIF(:WayOfInspectionID, 0), Comment1 = :Comment1, Comment2 = :Comment2 WHERE TVInspectionID = :TVInspectionID; END CREATE OR ALTER PROCEDURE WriteReach (ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), UpperManholeID integer, LowerManholeID integer, FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(15), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter integer, EndMeter integer, GroupingCode varchar(256), StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer) RETURNS (StructureID integer, TVInspectionID integer) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:UpperManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:UpperManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:UpperManhole, :GroupingCode) RETURNING_VALUES (:UpperManholeID); END ELSE BEGIN UpperManholeID = NULL; END END IF (NULLIF(:LowerManholeID, 0) IS NULL) THEN BEGIN IF (NULLIF(:LowerManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:LowerManhole, :GroupingCode) RETURNING_VALUES (:LowerManholeID); END ELSE BEGIN LowerManholeID = NULL; END END UPDATE OR INSERT INTO Structure(StructureID, GroupingCode) VALUES (:StructureID, :GroupingCode); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0),:InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), NULLIF(:TypeOfStructureInflowID, 0), NULLIF(:TypeOfStructureOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO Reach(StructureID, UpperManholeID, LowerManholeID, StartMeter, EndMeter, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D) VALUES(:StructureID, :UpperManholeID, :LowerManholeID, :StartMeter, :EndMeter, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D); UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; END CREATE OR ALTER PROCEDURE GetReachByID(StructureID integer) RETURNS(ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), UpperManhole varchar(256), LowerManhole varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256), MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, Comment1 varchar(256), Comment2 varchar(256), StartMeter float, EndMeter float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, GroupingCode varchar(256), RTI_U float, RTI_D float, GTI_U float, GTI_D float, RTG_U float, RTG_D float, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, IsActive smallint) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, UM.Number, LM.Number, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, TypeOfStructureInflowID, TypeOfStructureOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, TV.Comment1, TV.Comment2, StartMeter, EndMeter, S. StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, S.GroupingCode, RTI_U, RTI_D, GTI_U, GTI_D, RTG_U, RTG_D, UMC.ManholeConnectionID, LMC.ManholeConnectionID, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN Reach R ON PS.StructureID = R.StructureID INNER JOIN TVInspection TV ON TV.StructureID=S.StructureID LEFT OUTER JOIN Structure UM ON R.UpperManholeID = UM.StructureID LEFT OUTER JOIN Structure LM ON R.LowerManholeID = LM.StructureID LEFT OUTER JOIN TVInspection UTV ON UM.StructureID = UTV.StructureID LEFT OUTER JOIN TVInspection LTV ON LM.StructureID = LTV.StructureID LEFT OUTER JOIN ManholeConnection UMC ON UMC.TVInspectionID=UTV.TVInspectionID AND UMC.ChildStructureID=S.StructureID LEFT OUTER JOIN ManholeConnection LMC ON LMC.TVInspectionID=LTV.TVInspectionID AND LMC.ChildStructureID=S.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number,:CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :UpperManhole, :LowerManhole, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :TypeOfStructureInflowID, :TypeOfStructureOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID,:PositionInStreet,:SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :Comment1, :Comment2, :StartMeter, :EndMeter, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :GroupingCode, :RTI_U, :RTI_D, :GTI_U, :GTI_D, :RTG_U, :RTG_D, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :IsActive; END CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, ObjectID varchar(256), IsLocked smallint, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, CompletePipeLength float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), NULLIF(:TypeOfStructureInflowID, 0), NULLIF(:TypeOfStructureOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; EXECUTE PROCEDURE UpdateHCLevels; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, TypeOfStructureInflowID, TypeOfStructureOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :TypeOfStructureInflowID, :TypeOfStructureOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END CREATE OR ALTER PROCEDURE WriteDrinkingWaterPipe(ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), InspDate date, Street varchar(256), City varchar(256), StartNode varchar(256), EndNode varchar(256), InspTypeID integer, InspPlaceID integer, PipeTypeID integer, PipeAgeID integer, MaterialID integer, ProfileWidth integer, UsageID integer, CostCenter varchar(256), VideoTape varchar(256), Construction varchar(256), Department varchar(256), Foreman varchar(256), Welder varchar(256), Judgement varchar(256), Conclusion smallint, PipeClean varchar(256), Claim varchar(256), NextInspection varchar(256), ReachLength float, InspectionLength float, Comment varchar(1000), OrderNo varchar(256), Timepoint timestamp) RETURNS (StructureID integer, TVInspectionID integer) AS DECLARE VARIABLE StartNodeID integer; DECLARE VARIABLE EndNodeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen,1); TVInspectionID = GEN_ID(TVInspection_gen,1); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:ID INTO :TVInspectionID; StructureID = ID; IF (NULLIF(:StartNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:StartNode) RETURNING_VALUES (:StartNodeID); END ELSE BEGIN StartNodeID = NULL; END IF (NULLIF(:EndNode, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindDrinkingWaterNode(:EndNode) RETURNING_VALUES (:EndNodeID); END ELSE BEGIN EndNodeID = NULL; END UPDATE OR INSERT INTO Structure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO PipeStructure(StructureID) VALUES (:StructureID); UPDATE OR INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, Null, :InspDate, :Street, NULL, NULL, :City, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULLIF(:MaterialID, 0), NULL, :ProfileWidth, :ProfileWidth, :ReachLength, NULL, :Judgement, :Timepoint, NULL, NULL, :VideoTape, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :InspectionLength, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, :Comment, NULL); UPDATE OR INSERT INTO DrinkingWaterPipe(StructureID, StartNodeID, EndNodeID, InspTypeID, InspPlaceID, PipeTypeID, PipeAgeID, UsageID, CostCenter, Construction, Department, Foreman, Welder, Conclusion, PipeClean, Claim, NextInspection, OrderNo) VALUES (:StructureID, :StartNodeID, :EndNodeID, NULLIF(:InspTypeID, 0), NULLIF(:InspPlaceID, 0), NULLIF(:PipeTypeID, 0), NULLIF(:PipeAgeID, 0), NULLIF(:UsageID, 0), :CostCenter, :Construction, :Department, :Foreman, :Welder, :Conclusion, :PipeClean, :Claim, :NextInspection, :OrderNo); END EXECUTE BLOCK AS DECLARE VARIABLE RuleCodeFldType integer; BEGIN SELECT F.RDB$FIELD_TYPE FROM RDB$RELATION_FIELDS RF JOIN RDB$FIELDS F ON (F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE) WHERE (RF.RDB$RELATION_NAME = 'RULE') AND (RF.RDB$FIELD_NAME = 'CODE') INTO :RuleCodeFldType; IF (:RuleCodeFldType = 37) THEN BEGIN EXECUTE STATEMENT 'DROP PROCEDURE AddRule'; EXECUTE STATEMENT 'DROP PROCEDURE GetRule'; EXECUTE STATEMENT 'ALTER TABLE Rule ADD code_blb blob'; END END COMMIT |EXECUTE BLOCK AS DECLARE VARIABLE RuleCodeFldType integer; BEGIN SELECT F.RDB$FIELD_TYPE FROM RDB$RELATION_FIELDS RF JOIN RDB$FIELDS F ON (F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE) WHERE (RF.RDB$RELATION_NAME = 'RULE') AND (RF.RDB$FIELD_NAME = 'CODE') INTO :RuleCodeFldType; IF (:RuleCodeFldType = 37) THEN BEGIN EXECUTE STATEMENT 'UPDATE Rule SET code_blb = code'; END END EXECUTE BLOCK AS DECLARE VARIABLE RuleCodeFldType integer; BEGIN SELECT F.RDB$FIELD_TYPE FROM RDB$RELATION_FIELDS RF JOIN RDB$FIELDS F ON (F.RDB$FIELD_NAME = RF.RDB$FIELD_SOURCE) WHERE (RF.RDB$RELATION_NAME = 'RULE') AND (RF.RDB$FIELD_NAME = 'CODE') INTO :RuleCodeFldType; IF (:RuleCodeFldType = 37) THEN BEGIN EXECUTE STATEMENT 'ALTER TABLE Rule DROP Code'; EXECUTE STATEMENT 'ALTER TABLE Rule ALTER code_blb TO code'; END END COMMIT CREATE OR ALTER PROCEDURE ADDRULE ( WIZARDNAME Varchar(256), WIZARDFIELDNAME Varchar(256), RULENAME Varchar(256), RULECODE blob ) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name = :RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID = :WizardFieldID AND Name = :RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code = :RuleCode WHERE RuleID = :RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END CREATE OR ALTER PROCEDURE GETRULE ( WIZARD Varchar(256), WIZARDFIELD Varchar(256), RULENAME Varchar(256) ) RETURNS ( RULECODE blob ) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID = R.WizardFieldID INNER JOIN Wizard W ON W.WizardID = F.WizardID WHERE R.Name = :RuleName ORDER BY R.RuleID INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName ORDER BY RuleID INTO :RuleCode; END END @IGNORE PICOXE-53 *ALTER TABLE Manhole ADD Orientation float COMMIT CREATE OR ALTER PROCEDURE FindManhole(Number varchar(256), GroupingCode varchar(256)) RETURNS (StructureID integer) AS BEGIN SELECT FIRST 1 S.StructureID FROM Structure S INNER JOIN Manhole M ON S.StructureID = M.StructureID WHERE S.Number = :Number AND ((COALESCE(:GroupingCode, '') = '' AND COALESCE(S.GroupingCode, '') = '') OR :GroupingCode = S.GroupingCode) ORDER BY S.StructureID INTO :StructureID; IF (:StructureID IS NULL) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID, Number, GroupingCode) VALUES (:StructureID, :Number, :GroupingCode); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END END (CREATE OR ALTER PROCEDURE WriteManhole(ID integer, ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, InspPurposeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, SewerTypeID integer, StructureTypeID integer, Orientation float, ParentEventID integer, ParentStructureID integer) RETURNS (StructureID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN StructureID = GEN_ID(Structure_gen, 1); INSERT INTO Structure(StructureID) VALUES (:StructureID); INSERT INTO Manhole(StructureID) VALUES (:StructureID); END ELSE BEGIN StructureID = ID; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; IF (TVInspectionID IS NULL) THEN BEGIN TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO TVInspection(TVInspectionID, StructureID) VALUES (:TVInspectionID, :StructureID); END UPDATE Structure SET ObjectID = :ObjectID, IsLocked = :IsLocked, Number = :Number, CodeDigit = :CodeDigit, InspDate = :InspDate, Street = :Street, StreetCode = :StreetCode, Zip = :Zip, City = :City, BuildYear = :BuildYear, ReportNo = :ReportNo, GroundWaterLevel = :GroundWaterLevel, GroupingCode = :GroupingCode, StreetID = :StreetID, PropertyID = :PropertyID, FloodAreaID = :PropertyID, StoppingUnitID = :StoppingUnitID, MessageID = :MessageID, AtmosphereID = :AtmosphereID WHERE StructureID = :StructureID; UPDATE TVInspection SET ResponsiblePerson = :ResponsiblePerson, VideoTape = :VideoTape, Weather = :Weather, WeatherID = :WeatherID, Judgement = :StateTotal, InspPurposeID = NULLIF(:InspPurposeID, 0) WHERE StructureID = :StructureID; UPDATE Manhole SET ManholeFormID = NULLIF(:ManholeFormID, 0), CoordX = :CoordX, CoordY = :CoordY, CoordXOffset = :CoordXOffset, CoordYOffset = :CoordYOffset, CoordExactID = NULLIF(:CoordExactID, 0), CoverHeight = :CoverHeight, CoverExactID = NULLIF(:CoverExactID, 0), BottomHeight = :BottomHeight, BottomExactID = NULLIF(:BottomExactID, 0), StatusID = NULLIF(:StatusID, 0), FlumeShapeID = NULLIF(:FlumeShapeID, 0), DefinitionClassID = NULLIF(:DefinitionClassID, 0), CoverDN = :CoverDN, CoverWidth = :CoverWidth, CoverShapeID = NULLIF(:CoverShapeID, 0), Screwed = :Screwed, ManhShapeID = NULLIF(:ManhShapeID, 0), ManhDN = :ManhDN, ManhWidth = :ManhWidth, TaperShaftRing = :TaperShaftRing, ManhLowerShapeID = NULLIF(:ManhLowerShapeID, 0), ManhLowerDN = :ManhLowerDN, ManhLowerWidth = :ManhLowerWidth, ManhLowerHeight = :ManhLowerHeight, NeckMaterialID = NULLIF(:NeckMaterialID, 0), UpperPartMaterialID = NULLIF(:UpperPartMaterialID, 0), LowerPartMaterialID = NULLIF(:LowerPartMaterialID, 0), FlumeMaterialID = NULLIF(:FlumeMaterialID, 0), BenchMaterialID = NULLIF(:BenchMaterialID, 0), InternalProtectionID = NULLIF(:InternalProtectionID, 0), ManholeStepID = NULLIF(:ManholeStepID, 0), DescendingHelp = :DescendingHelp, ShaftRing = :ShaftRing, CoverPlate = :CoverPlate, CoverMaterialID = NULLIF(:CoverMaterialID, 0), DescendingHelpMaterial = :DescendingHelpMaterial, DescendingHelpMaterialID = NULLIF(:DescendingHelpMaterialID, 0), DescendingHelpCount = :DescendingHelpCount, PositionInStreet = :PositionInStreet, PositionInStreetID = NULLIF(:PositionInStreetID, 0), ManholeDepth = :ManholeDepth, CoverTypeID = :CoverTypeID, BalancingTypeID = :BalancingTypeID, BalancingMaterialID = :BalancingMaterialID, BalancingHeight = :BalancingHeight, TaperRingSlack = :TaperRingSlack, TaperRingHeight = :TaperRingHeight, DescendingHelpSpace = :DescendingHelpSpace, TypeOfNodeID = :TypeOfNodeID, TypeOfStructureID = :TypeOfStructureID, SewerTypeID = :SewerTypeID, StructureTypeID = :StructureTypeID, WaterProtectionZone = :WaterProtectionZone, WaterProtectionZoneID = :WaterProtectionZoneID, ConeFormID = :ConeFormID, ConeUpperDN = :ConeUpperDN, ConeLowerDN = :ConeLowerDN, ConeHeight = :ConeHeight, Orientation = :Orientation WHERE StructureID = :StructureID; DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructureID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructureID, :StructureID); UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END END "CREATE OR ALTER PROCEDURE GetManholeByID(StructureID integer) RETURNS (ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), ManholeFormID integer, ResponsiblePerson varchar(256), StateTotal varchar(256), CoordX double precision, CoordY double precision, CoordXOffset double precision, CoordYOffset double precision, CoordExactID integer, CoverHeight float, CoverExactID integer, BottomHeight float, BottomExactID integer, StatusID integer, FlumeShapeID integer, DefinitionClassID integer, CoverDN float, CoverWidth float, CoverShapeID integer, Screwed smallint, ManhShapeID integer, ManhDN float, ManhWidth float, TaperShaftRing smallint, ManhLowerShapeID integer, ManhLowerDN float, ManhLowerWidth float, ManhLowerHeight float, NeckMaterialID integer, UpperPartMaterialID integer, LowerPartMaterialID integer, FlumeMaterialID integer, BenchMaterialID integer, InternalProtectionID integer, ManholeStepID integer, DescendingHelp smallint, ShaftRing smallint, CoverPlate smallint, CoverMaterialID integer, DescendingHelpMaterial varchar(256), DescendingHelpMaterialID integer, DescendingHelpCount integer, PositionInStreet varchar(256), PositionInStreetID integer, VideoTape varchar(256), Weather varchar(256), WeatherID integer, GroupingCode varchar(256), ManholeDepth float, CoverTypeID integer, BalancingTypeID integer, BalancingMaterialID integer, BalancingHeight float, TaperRingSlack float, TaperRingHeight float, DescendingHelpSpace float, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, InspPurposeID integer, AtmosphereID integer, TypeOfNodeID integer, TypeOfStructureID integer, SewerTypeID integer, StructureTypeID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, ConeFormID integer, ConeUpperDN integer, ConeLowerDN integer, ConeHeight integer, IsActive smallint, Orientation float, ParentEventID integer, ParentStructureID integer) AS BEGIN SELECT FIRST 1 ObjectID, IsLocked, Number, CodeDigit, InspDate, Street, StreetCode, Zip, City, BuildYear, ReportNo, GroundWaterLevel, ManholeFormID, ResponsiblePerson, Judgement, CoordX, CoordY, CoordXOffset, CoordYOffset, CoordExactID, CoverHeight, CoverExactID, BottomHeight, BottomExactID, StatusID, FlumeShapeID, DefinitionClassID, CoverDN, CoverWidth, CoverShapeID, Screwed, ManhShapeID, ManhDN, ManhWidth, TaperShaftRing, ManhLowerShapeID, ManhLowerDN, ManhLowerWidth, ManhLowerHeight, NeckMaterialID, UpperPartMaterialID, LowerPartMaterialID, FlumeMaterialID, BenchMaterialID, InternalProtectionID, ManholeStepID, DescendingHelp, ShaftRing, CoverPlate, CoverMaterialID, DescendingHelpMaterial, DescendingHelpMaterialID, DescendingHelpCount, PositionInStreet, PositionInStreetID, VideoTape, Weather, WeatherID, S.GroupingCode, ManholeDepth, CoverTypeID, BalancingTypeID, BalancingMaterialID, BalancingHeight, TaperRingSlack, TaperRingHeight, DescendingHelpSpace, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, TV.InspPurposeID, S.AtmosphereID, TypeOfNodeID, TypeOfStructureID, SewerTypeID, StructureTypeID, WaterProtectionZone, WaterProtectionZoneID, ConeFormID, ConeUpperDN, ConeLowerDN, ConeHeight, S.IsActive, M.Orientation, Ev.EventID, LSS.MasterStructureID FROM Manhole M INNER JOIN Structure S ON M.StructureID = S.StructureID INNER JOIN TVInspection TV ON TV.StructureID = S.StructureID LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID LEFT OUTER JOIN LStructureStructure LSS ON LSS.StructureID = S.StructureID WHERE M.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :ManholeFormID, :ResponsiblePerson, :StateTotal, :CoordX, :CoordY, :CoordXOffset, :CoordYOffset, :CoordExactID, :CoverHeight, :CoverExactID, :BottomHeight, :BottomExactID, :StatusID, :FlumeShapeID, :DefinitionClassID, :CoverDN, :CoverWidth, :CoverShapeID, :Screwed, :ManhShapeID, :ManhDN, :ManhWidth, :TaperShaftRing, :ManhLowerShapeID, :ManhLowerDN, :ManhLowerWidth, :ManhLowerHeight, :NeckMaterialID, :UpperPartMaterialID, :LowerPartMaterialID, :FlumeMaterialID, :BenchMaterialID, :InternalProtectionID, :ManholeStepID, :DescendingHelp, :ShaftRing, :CoverPlate, :CoverMaterialID, :DescendingHelpMaterial, :DescendingHelpMaterialID, :DescendingHelpCount, :PositionInStreet, :PositionInStreetID, :VideoTape, :Weather, :WeatherID, :GroupingCode, :ManholeDepth, :CoverTypeID, :BalancingTypeID, :BalancingMaterialID, :BalancingHeight, :TaperRingSlack, :TaperRingHeight, :DescendingHelpSpace, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :InspPurposeID, :AtmosphereID, :TypeOfNodeID, :TypeOfStructureID, :SewerTypeID, :StructureTypeID, :WaterProtectionZone, :WaterProtectionZoneID, :ConeFormID, :ConeUpperDN, :ConeLowerDN, :ConeHeight, :IsActive, :Orientation, :ParentEventID, :ParentStructureID; END bCREATE OR ALTER PROCEDURE WritePicture(ID integer, StructureID integer, EventID integer, Path varchar(1000)) RETURNS (MultimediaID integer) AS DECLARE VARIABLE TVInspectionID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Multimedia_gen, 1); END MultimediaID = ID; SELECT TVInspectionID FROM TVInspection WHERE StructureID = :StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO Multimedia(MultimediaID, Path, TVInspectionID) VALUES (:MultimediaID, :Path, :TVInspectionID); UPDATE OR INSERT INTO Picture(MultimediaID, EventID) VALUES (:MultimediaID, NULLIF(:EventID, 0)); END @IGNORE @IGNORE @IGNORE EXECUTE BLOCK AS DECLARE VARIABLE Dummy integer; BEGIN EXECUTE PROCEDURE AddSpecialAbbrClass(0, 'STRC', 'Streckenschaden Aenderung', 1) RETURNING_VALUES(:Dummy); END ALTER TABLE HouseConnection ADD TypeOfPointInflowID integer REFERENCES Abbr, ADD TypeOfPointOutflowID integer REFERENCES Abbr; COMMIT CREATE OR ALTER PROCEDURE WRITEHOUSECONNECTION ( ID Integer, TVINSPECTIONID Integer, ObjectID varchar(256), IsLocked smallint, REACHNUMBER varchar(256), NUMBER varchar(256), CODEDIGIT varchar(256), INSPDATE Date, STREET varchar(256), STREETCODE varchar(256), ZIP varchar(256), CITY varchar(256), BUILDYEAR Integer, REPORTNO Integer, GROUNDWATERLEVEL varchar(256), REVMANHOLE varchar(256), CONNECTIONPOINT varchar(256), FLOWDIRECTIONID Integer, INSPECTIONMODEID Integer, INSPECTIONMODE varchar(256), ORDERERPRESENT varchar(256), CONTRACTORPRESENT varchar(256), INNERPROTECTIONID Integer, SEWERTYPEID Integer, MATERIALID Integer, PROFILETYPEID Integer, PROFILEHEIGHT float, PROFILEWIDTH float, REACHLENGTH float, CompletePipeLength float, JUDGEMENT varchar(256), TIMEPOINT Timestamp, PICTUREQUALITY varchar(256), VIDEOCOUNTER varchar(256), VIDEOTAPE varchar(256), SECTIONNO varchar(256), RESPONSIBLEPERSON varchar(256), SITEPLANNO varchar(256), MUNICIPALCODE varchar(256), DISTRICTNOID Integer, DISTRICTNO varchar(256), CITYMAPPAGENO varchar(256), STREETSURFACE varchar(256), WEATHERID Integer, WEATHER varchar(256), SEWERNO varchar(256), SCALE Integer, PIPELENGTH float, WALLTHICKNESS float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, TypeOfPointInflowID integer, TypeOfPointOutflowID integer, WATERPROTECTIONZONE varchar(256), WaterProtectionZoneID integer, POSITIONINSTREETID Integer, POSITIONINSTREET varchar(256), SEWERAGEDISTRICT varchar(256), ENDOFGUARANTEE varchar(256), ENDOFGUARANTEEDATE Date, CLEANINGDATE Date, QUEUE varchar(256), TYPEOFSEALING varchar(256), TypeOfSealingID integer, FLAG varchar(256), INSPECTIONLENGTH float, RESPONSIBLEPERSONCERTIFICATENO varchar(256), LOCATIONDETAILS varchar(256), FLOWCONTROLID Integer, RENOVATIONYEAR Integer, SEWERCATEGORY varchar(256), PRECLEANINGID Integer, DRAINAGEAREA varchar(256), INSPPURPOSEID Integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, COMMENT1 varchar(256), COMMENT2 varchar(256), GROUPINGCODE varchar(256), STARTMANHOLE varchar(256), DISTANCEFROMMANHOLE float, PARENTSTRUCTID Integer, PARENTEVENTID Integer, UpperParentManholeConnectionID Integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256)) RETURNS ( STRUCTUREID Integer ) AS DECLARE VARIABLE StartManholeID integer; BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN ID = GEN_ID(Structure_gen, 1); TVInspectionID = GEN_ID(TVInspection_gen, 1); INSERT INTO Structure(StructureID) VALUES (:ID); INSERT INTO TVInspection(TVInspectionID,StructureID) VALUES (:TVInspectionID, :ID); INSERT INTO PipeStructure(StructureID) VALUES (:ID); END ELSE SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID = :ID INTO :TVInspectionID; StructureID = :ID; IF (NULLIF(:StartManhole, '') IS NOT NULL) THEN BEGIN EXECUTE PROCEDURE FindManhole(:StartManhole, :GroupingCode) RETURNING_VALUES (:StartManholeID); END ELSE BEGIN StartManholeID = NULL; END UPDATE Structure SET GroupingCode = :GroupingCode WHERE StructureID=:StructureID; EXECUTE PROCEDURE UpdatePipeStructure(:StructureID, :TVInspectionID, :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, NULLIF(:FlowDirectionID, 0), NULLIF(:InspectionModeID, 0), :InspectionMode, :OrdererPresent, :ContractorPresent, NULLIF(:InnerProtectionID, 0), NULLIF(:SewerTypeID, 0), NULLIF(:MaterialID, 0), NULLIF(:ProfileTypeID, 0), :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, NULLIF(:DistrictNoID, 0), :DistrictNo, :CityMapPageNo, :StreetSurface, NULLIF(:WeatherID, 0), :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, NULLIF(:OriginProfileDimID, 0), NULLIF(:OriginMaterialID, 0), NULLIF(:TypeOfInflowID, 0), NULLIF(:TypeOfOutflowID, 0), NULLIF(:TypeOfStructureInflowID, 0), NULLIF(:TypeOfStructureOutflowID, 0), :WaterProtectionZone, NULLIF(:WaterProtectionZoneID, 0), NULLIF(:PositionInStreetID, 0), :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, NULLIF(:TypeOfSealingID, 0), :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, NULLIF(:FlowControlID, 0), :RenovationYear, :SewerCategory, NULLIF(:PreCleaningID, 0), :DrainageArea, NULLIF(:InspPurposeID, 0), NULLIF(:StreetID, 0), NULLIF(:PropertyID, 0), NULLIF(:FloodAreaID, 0), NULLIF(:StoppingUnitID, 0), NULLIF(:MessageID, 0), NULLIF(:AtmosphereID, 0), NULLIF(:WaterControlID, 0), NULLIF(:WayOfInspectionID, 0), :Comment1, :Comment2); UPDATE OR INSERT INTO HouseConnection(StructureID, RevManhole, ConnectionPoint, StartManholeID, DistanceFromManhole, ParentStructureNumber, TypeOfPointInflowID, TypeOfPointOutflowID) VALUES (:StructureID, :RevManhole, :ConnectionPoint, NULLIF(:StartManholeID, 0), :DistanceFromManhole, :ParentStructureNumber, NULLIF(:TypeOfPointInflowID, 0), NULLIF(:TypeOfPointOutflowID, 0)); IF (ParentStructID IS NULL) THEN /*i.e. import from WK32*/ BEGIN EXECUTE PROCEDURE FindReach(:ReachNumber) RETURNING_VALUES(:ParentStructID); END DELETE FROM LStructureStructure WHERE StructureID = :StructureID AND Dependency IS NULL; IF (ParentStructID IS NOT NULL) THEN BEGIN INSERT INTO LStructureStructure(MasterStructureID, StructureID) VALUES (:ParentStructID, :StructureID); IF (ParentEventID IS NULL) THEN BEGIN SELECT FIRST 1 EventID FROM Event E INNER JOIN TVInspection TV ON E.TVInspectionID = TV.TVInspectionID INNER JOIN Abbr A ON E.CodeID = A.AbbrID INNER JOIN LAbbrSpecialAbbrClass LASAC ON A.AbbrID = LASAC.AbbrID INNER JOIN SpecialAbbrClass SAC ON LASAC.SpecialAbbrClassID = SAC.SpecialAbbrClassID AND SAC.Code = 'ANS' WHERE StructureID = :ParentStructID AND PathLength - :DistanceFromManhole <= 0.01 AND PathLength - :DistanceFromManhole >= -0.01 INTO :ParentEventID; UPDATE Event SET JointAngle = 87 WHERE EventID = :ParentEventID AND (JointAngle IS NULL OR JointAngle = 0); END UPDATE Event SET ChildStructureID = :StructureID WHERE EventID = :ParentEventID; END UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :UpperParentManholeConnectionID; UPDATE ManholeConnection SET ChildStructureID = :StructureID WHERE ManholeConnectionID = :LowerParentManholeConnectionID; EXECUTE PROCEDURE UpdateHCLevels; END CREATE OR ALTER PROCEDURE GetHouseConnectionByID (StructureID integer) RETURNS (ObjectID varchar(256), IsLocked smallint, Number varchar(256), CodeDigit varchar(256), InspDate date, Street varchar(256), StreetCode varchar(256), Zip varchar(256), City varchar(256), BuildYear integer, ReportNo integer, GroundWaterLevel varchar(256), RevManhole varchar(256), ConnectionPoint varchar(256), FlowDirectionID integer, InspectionModeID integer, InspectionMode varchar(256), OrdererPresent varchar(256), ContractorPresent varchar(256), InnerProtectionID integer, SewerTypeID integer, MaterialID integer, ProfileTypeID integer, ProfileHeight float, ProfileWidth float, ReachLength float, CompletePipeLength float, Judgement varchar(256), Timepoint timestamp, PictureQuality varchar(256), VideoCounter varchar(256), VideoTape varchar(256), SectionNo varchar(256), ResponsiblePerson varchar(256), SitePlanNo varchar(256),MunicipalCode varchar(256), DistrictNoID integer, DistrictNo varchar(256), CityMapPageNo varchar(256), StreetSurface varchar(256), WeatherID integer, Weather varchar(256), SewerNo varchar(256), Scale integer, PipeLength float, WallThickness float, OriginProfileDimID integer, OriginMaterialID integer, TypeOfInflowID integer, TypeOfOutflowID integer, TypeOfStructureInflowID integer, TypeOfStructureOutflowID integer, TypeOfPointInflowID integer, TypeOfPointOutflowID integer, WaterProtectionZone varchar(256), WaterProtectionZoneID integer, PositionInStreetID integer, PositionInStreet varchar(256), SewerageDistrict varchar(256), EndOfGuarantee varchar(256), EndOfGuaranteeDate date, CleaningDate date, Queue varchar(256), TypeOfSealing varchar(256), TypeOfSealingID integer, Flag varchar(256), InspectionLength float, ResponsiblePersonCertificateNo varchar(256), LocationDetails varchar(256), FlowControlID integer, RenovationYear integer, SewerCategory varchar(256), PreCleaningID integer, DrainageArea varchar(256), InspPurposeID integer, StreetID integer, PropertyID integer, FloodAreaID integer, StoppingUnitID integer, MessageID integer, AtmosphereID integer, WaterControlID integer, WayOfInspectionID integer, Comment1 varchar(256), Comment2 varchar(256), GroupingCode varchar(256), Surface varchar(256), StartManhole varchar(256), DistanceFromManhole float, ParentStructID integer, ParentEventID integer, UpperParentManholeConnectionID integer, LowerParentManholeConnectionID integer, ParentStructureNumber varchar(256), IsActive smallint) AS BEGIN SELECT S.ObjectID, S.IsLocked, S.Number, S.CodeDigit, S.InspDate, S.Street, S.StreetCode, S.Zip, S.City, S.BuildYear, S.ReportNo, S.GroundWaterLevel, RevManhole, ConnectionPoint, TV.FlowDirectionID, TV.InspectionModeID, TV.InspectionMode, TV.OrdererPresent, TV.ContractorPresent, InnerProtectionID, SewerTypeID, PS.MaterialID, ProfileTypeID, ProfileHeight, ProfileWidth, ReachLength, CompletePipeLength, TV.Judgement, TV.Timepoint, TV.PictureQuality, TV.VideoCounter, TV.VideoTape, TV.SectionNo, TV.ResponsiblePerson, SitePlanNo, MunicipalCode, DistrictNoID, DistrictNo, TV.CityMapPageNo, TV.StreetSurface, TV.WeatherID, TV.Weather, TV.SewerNo, TV.Scale, PipeLength, WallThickness, OriginProfileDimID, OriginMaterialID, TypeOfInflowID, TypeOfOutflowID, TypeOfStructureInflowID, TypeOfStructureOutflowID, TypeOfPointInflowID, TypeOfPointOutflowID, WaterProtectionZone, WaterProtectionZoneID, PositionInStreetID, PositionInStreet, SewerageDistrict, TV.EndOfGuarantee, TV.EndOfGuaranteeDate, TV.CleaningDate, TV.Queue, TV.TypeOfSealing, TV.TypeOfSealingID, TV.Flag, TV.InspectionLength, TV.ResponsiblePersonCertificateNo, TV.LocationDetails, TV.FlowControlID, TV.RenovationYear, TV.SewerCategory, TV.PreCleaningID, TV.DrainageArea, TV.InspPurposeID, S.StreetID, S.PropertyID, S.FloodAreaID, S.StoppingUnitID, S.MessageID, S.AtmosphereID, TV.WaterControlID, TV.WayOfInspectionID, TV.Comment1, TV.Comment2, S.GroupingCode, SM.Number, DistanceFromManhole, ParLSS.MasterStructureID, Ev.EventID, UMC.ManholeConnectionID, LMC.ManholeConnectionID, HC.ParentStructureNumber, S.IsActive FROM Structure S INNER JOIN PipeStructure PS ON S.StructureID = PS.StructureID INNER JOIN HouseConnection HC ON PS.StructureID = HC.StructureID INNER JOIN TVInspection TV ON S.StructureID = TV.StructureID LEFT OUTER JOIN Structure SM ON HC.StartManholeID = SM.StructureID LEFT OUTER JOIN LStructureStructure ParLSS ON S.StructureID = ParLSS.StructureID AND (ParLSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure ULSS INNER JOIN TVInspection UTV ON UTV.StructureID = ULSS.StructureID INNER JOIN ManholeConnection UMC ON UMC.ChildStructureID = S.StructureID AND UMC.TVInspectionID = UTV.TVInspectionID ) ON S.StructureID = ULSS.MasterStructureID AND (ULSS.Dependency IS NULL) LEFT OUTER JOIN ( LStructureStructure LLSS INNER JOIN TVInspection LTV ON LTV.StructureID = LLSS.MasterStructureID INNER JOIN ManholeConnection LMC ON LMC.ChildStructureID = S.StructureID AND LMC.TVInspectionID = LTV.TVInspectionID ) ON S.StructureID = LLSS.StructureID AND (LLSS.Dependency IS NULL) LEFT OUTER JOIN Event Ev ON Ev.ChildStructureID = S.StructureID WHERE S.StructureID = :StructureID INTO :ObjectID, :IsLocked, :Number, :CodeDigit, :InspDate, :Street, :StreetCode, :Zip, :City, :BuildYear, :ReportNo, :GroundWaterLevel, :RevManhole, :ConnectionPoint, :FlowDirectionID, :InspectionModeID, :InspectionMode, :OrdererPresent, :ContractorPresent, :InnerProtectionID, :SewerTypeID, :MaterialID, :ProfileTypeID, :ProfileHeight, :ProfileWidth, :ReachLength, :CompletePipeLength, :Judgement, :Timepoint, :PictureQuality, :VideoCounter, :VideoTape, :SectionNo, :ResponsiblePerson, :SitePlanNo, :MunicipalCode, :DistrictNoID, :DistrictNo, :CityMapPageNo, :StreetSurface, :WeatherID, :Weather, :SewerNo, :Scale, :PipeLength, :WallThickness, :OriginProfileDimID, :OriginMaterialID, :TypeOfInflowID, :TypeOfOutflowID, :TypeOfStructureInflowID, :TypeOfStructureOutflowID, :TypeOfPointInflowID, :TypeOfPointOutflowID, :WaterProtectionZone, :WaterProtectionZoneID, :PositionInStreetID, :PositionInStreet, :SewerageDistrict, :EndOfGuarantee, :EndOfGuaranteeDate, :CleaningDate, :Queue, :TypeOfSealing, :TypeOfSealingID, :Flag, :InspectionLength, :ResponsiblePersonCertificateNo, :LocationDetails, :FlowControlID, :RenovationYear, :SewerCategory, :PreCleaningID, :DrainageArea, :InspPurposeID, :StreetID, :PropertyID, :FloodAreaID, :StoppingUnitID, :MessageID, :AtmosphereID, :WaterControlID, :WayOfInspectionID, :Comment1, :Comment2, :GroupingCode, :StartManhole, :DistanceFromManhole, :ParentStructID, :ParentEventID, :UpperParentManholeConnectionID, :LowerParentManholeConnectionID, :ParentStructureNumber, :IsActive; END @IGNORE &INSERT INTO FilmFormat VALUES(5,'HD') CREATE OR ALTER PROCEDURE UpdateHCLevel(ID integer) RETURNS (HCLevel integer) AS DECLARE VARIABLE ParentID integer; DECLARE VARIABLE ParentLevel integer; BEGIN SELECT FIRST 1 MasterStructureID FROM LStructureStructure WHERE StructureID = :ID AND Dependency IS NULL INTO :ParentID; IF (:ParentID IS NULL) THEN BEGIN HCLevel = 0; END ELSE BEGIN SELECT LevelInHierarchy FROM HouseConnection WHERE StructureID = :ParentID INTO :ParentLevel; IF (ParentLevel IS NULL) THEN BEGIN EXECUTE PROCEDURE UpdateHCLevel(:ParentID) RETURNING_VALUES(:ParentLevel); END HCLevel = ParentLevel + 1; END UPDATE HouseConnection SET LevelInHierarchy = :HCLevel WHERE StructureID = :ID; END @ALTER TABLE ManholeConnection ADD ConnPositionCorrection float; COMMIT CREATE OR ALTER PROCEDURE WriteManholeConnection(ID integer, StructureID integer, TypeID integer, Dim float, Height float, MaterialID integer, ConnPosition smallint, ConnPositionCorrection float, Comment varchar(256), Coord varchar(256), ChildStructureID integer, Descr varchar(256)) RETURNS (ManholeConnectionID integer) AS DECLARE VARIABLE ChildStrExists smallint; DECLARE VARIABLE TVInspectionID integer; BEGIN ManholeConnectionID = ID; IF (ManholeConnectionID = 0) THEN BEGIN ManholeConnectionID = GEN_ID(ManholeConnection_gen, 1); END SELECT count(*) FROM Structure WHERE StructureID = :ChildStructureID INTO :ChildStrExists; IF (ChildStrExists = 0) THEN BEGIN ChildStructureID = NULL; END SELECT FIRST 1 TVInspectionID FROM TVInspection WHERE StructureID=:StructureID INTO :TVInspectionID; UPDATE OR INSERT INTO ManholeConnection(ManholeConnectionID, TVInspectionID, TypeID, Dim, Height, MaterialID, ConnPosition, ConnPositionCorrection, Comment, Coord, ChildStructureID, Descr) VALUES(:ManholeConnectionID, :TVInspectionID, NULLIF(:TypeID, 0), :Dim, :Height, NULLIF(:MaterialID, 0), :ConnPosition, :ConnPositionCorrection, :Comment, :Coord, :ChildStructureID, :Descr); END CREATE OR ALTER PROCEDURE GetManholeConnectionByID(ManholeConnectionID integer) RETURNS(StructureID integer, TVInspectionID integer, TypeID integer, TypeText varchar(256), Dim float, Height float, MaterialID integer, ConnPosition smallint, ConnPositionCorrection float, Comment varchar(256), Coord varchar(256), ChildStructureID integer, Descr varchar(256)) AS BEGIN SELECT I.StructureID, I.TVInspectionID, TypeID, ATX.FullText, Dim, Height, MaterialID, ConnPosition, ConnPositionCorrection, Comment, Coord, ChildStructureID, Descr FROM ManholeConnection MC INNER JOIN TVInspection I ON MC.TVInspectionID = I.TVInspectionID LEFT OUTER JOIN AbbrText ATX ON MC.TypeID = ATX.AbbrID LEFT OUTER JOIN Language L ON ATX.LanguageID = L.LanguageID AND L.IsActive = 1 WHERE MC.ManholeConnectionID = :ManholeConnectionID INTO :StructureID, :TVInspectionID, :TypeID, :TypeText, :Dim, :Height, :MaterialID, :ConnPosition, :ConnPositionCorrection, :Comment, :Coord, :ChildStructureID, :Descr; END *INSERT INTO PictureFormat VALUES(3,'BMP') *INSERT INTO PictureFormat VALUES(4,'PNG') 7UPDATE Project SET FilmFormatID=1 WHERE FilmFormatID=4 ,DELETE FROM FilmFormat WHERE FilmFormatID=4 D--CREATE PROCEDURE FindProject CREATE TABLE DBLog(msg varchar(256)) %CREATE OR ALTER PROCEDURE FindProject(CustomerName varchar(40),ProjectNo varchar(20)) RETURNS (ProjectID integer) AS BEGIN SELECT FIRST 1 ProjectID FROM Project P INNER JOIN Customer C ON P.CustomerID=C.CustomerID WHERE C.Name=:CustomerName AND P.OrderNr=:ProjectNo INTO :ProjectID; END 5ALTER TABLE Project ADD DefaultExporter varchar(100) COMMIT ALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100) ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter); END sALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,PictureFormat varchar(10),FilmFormatID integer, FilmFormat varchar(10),DefaultExporter varchar(100),IsActive smallint ) AS BEGIN SELECT CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,P.PictureFormatID,PF.Name AS PictureFormat, P.FilmFormatID,FF.Name AS FilmFormat,DefaultExporter,IsActive FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID=PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID=FF.FilmFormatID WHERE ProjectID=:ID INTO :CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:PictureFormat,:FilmFormatID,:FilmFormat,:DefaultExporter,:IsActive; END ALTER PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer,DefaultExporter varchar(100) ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID, DefaultExporter=:DefaultExporter WHERE ProjectID=:ID; END COMMIT >ALTER TABLE Project ADD ManhInspDirUpwards smallint DEFAULT 1 COMMIT *UPDATE Project SET ManhInspDirUpwards = 1 COMMIT ALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100), ManhInspDirUpwards smallint ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter, ManhInspDirUpwards) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter,:ManhInspDirUpwards); END ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,PictureFormat varchar(10),FilmFormatID integer, FilmFormat varchar(10),DefaultExporter varchar(100),ManhInspDirUpwards smallint,IsActive smallint ) AS BEGIN SELECT CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,P.PictureFormatID,PF.Name AS PictureFormat, P.FilmFormatID,FF.Name AS FilmFormat,DefaultExporter,ManhInspDirUpwards,IsActive FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID=PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID=FF.FilmFormatID WHERE ProjectID=:ID INTO :CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:PictureFormat,:FilmFormatID,:FilmFormat,:DefaultExporter, :ManhInspDirUpwards,:IsActive; END ALTER PROCEDURE UpdateProject ( ID integer,CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer,DefaultExporter varchar(100), ManhInspDirUpwards smallint ) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; UPDATE Project SET CustomerID=:CustomerID,Directory=:Directory,OrderNr=:OrderNr,OrderFor=:OrderFor, ResponsPerson=:ResponsPerson,ResponsPersonPhone=:ResponsPersonPhone, Delivery=:Delivery,Placing=:Placing,WorkStart=:WorkStart,WorkEnd=:WorkEnd, SearchKey=:SearchKey,EstateArea=:EstateArea,EstateNo=:EstateNo,FileNo=:FileNo,ResponsScope=:ResponsScope, UserDesign=:UserDesign,EstateIdentNo=:EstateIdentNo,Editing=:Editing,RespAdmDept=:RespAdmDept, TechnBoardOfControl=:TechnBoardOfControl,DeptNo=:DeptNo,Comment=:Comment, PictureNamePrefix=:PictureNamePrefix,PictureFormatID=:PictureFormatID,FilmFormatID=:FilmFormatID, DefaultExporter=:DefaultExporter,ManhInspDirUpwards=:ManhInspDirUpwards WHERE ProjectID=:ID; END OALTER TABLE Project ADD UniqueKey varchar(20), ADD SynchronizationDT timestamp COMMIT IALTER PROCEDURE AddProject ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,FilmFormatID integer, DefaultExporter varchar(100), ManhInspDirUpwards smallint, UniqueKey varchar(20) ) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen,1); INSERT INTO Project(ProjectID,CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,PictureFormatID,FilmFormatID,DefaultExporter, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID,:CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:FilmFormatID,:DefaultExporter,:ManhInspDirUpwards, :UniqueKey); END ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024),OrderNr varchar(20),OrderFor varchar(30),ResponsPerson varchar(30), ResponsPersonPhone varchar(30),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(100),EstateArea varchar(40),EstateNo varchar(40),FileNo varchar(40), ResponsScope varchar(40),UserDesign varchar(40),EstateIdentNo varchar(40),Editing varchar(40), RespAdmDept varchar(40),TechnBoardOfControl varchar(40),DeptNo varchar(40),Comment varchar(40), PictureNamePrefix varchar(20),PictureFormatID integer,PictureFormat varchar(10),FilmFormatID integer, FilmFormat varchar(10),DefaultExporter varchar(100),ManhInspDirUpwards smallint,IsActive smallint, UniqueKey varchar(20) ) AS BEGIN SELECT CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,P.PictureFormatID,PF.Name AS PictureFormat, P.FilmFormatID,FF.Name AS FilmFormat,DefaultExporter,ManhInspDirUpwards,IsActive,UniqueKey FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID=PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID=FF.FilmFormatID WHERE ProjectID=:ID INTO :CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:PictureFormat,:FilmFormatID,:FilmFormat,:DefaultExporter, :ManhInspDirUpwards,:IsActive,:UniqueKey; END RALTER TABLE Project ADD RuleSourceFile varchar(200), ADD RuleImportTime timestamp COMMIT ALTER PROCEDURE FindCustomer (Name varchar(40),Street varchar(40),Zip varchar(10),City varchar(40),Land varchar(20), Tel varchar(30),Fax varchar(30),ExtraInfo varchar(1000) ) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (Upper(C.Name) = Upper(:Name)) AND ((NullIf(C.Street, '') = '') OR (NullIf(:Street, '') = '') OR (Upper(C.Street) = Upper(:Street))) AND ((NullIf(C.Zip, '') = '') OR (NullIf(:Zip, '') = '') OR (Upper(C.Zip) = Upper(:Zip))) AND ((NullIf(C.City, '') = '') OR (NullIf(:City, '') = '') OR (Upper(C.City) = Upper(:City))) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo) RETURNING_VALUES :CustomerID; END ALTER PROCEDURE AddPreset(ControlKey varchar(50), Text varchar(256), PresetCnt integer) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP (:PresetCnt) PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END ELSE BEGIN UPDATE Preset SET Timepoint='now' WHERE ControlKey=:ControlKey AND Text=:Text; END END END ALTER PROCEDURE GetPresets(ControlKey varchar(50), PresetCnt integer) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST (:PresetCnt) DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END DROP INDEX Preset_idx DROP PROCEDURE GetPresets DROP PROCEDURE AddPreset DROP PROCEDURE UpdateProject DROP PROCEDURE AddProject DROP PROCEDURE FindProject DROP PROCEDURE GetProjectByID DROP PROCEDURE UpdateCustomer DROP PROCEDURE FindCustomer DROP PROCEDURE AddCustomer DROP PROCEDURE GetCustomerByID #DROP PROCEDURE PictureFormatByName ALTER TABLE customer ADD name2 varchar(256), ADD street2 varchar(256), ADD zip2 varchar(256), ADD city2 varchar(256), ADD land2 varchar(256), ADD tel2 varchar(256), ADD fax2 varchar(256) .ALTER TABLE filmformat ADD name2 varchar(256) 1ALTER TABLE PICTUREFORMAT ADD name2 varchar(256) HALTER TABLE PRESET ADD ControlKey2 varchar(256), ADD Text2 varchar(256) ~ALTER TABLE PROJECT ADD OrderNr2 varchar(256), ADD OrderFor2 varchar(256), ADD ResponsPerson2 varchar(256), ADD ResponsPersonPhone2 varchar(256), ADD SearchKey2 varchar(256), ADD EstateArea2 varchar(256), ADD EstateNo2 varchar(256), ADD FileNo2 varchar(256), ADD ResponsScope2 varchar(256), ADD UserDesign2 varchar(256), ADD EstateIdentNo2 varchar(256), ADD Editing2 varchar(256), ADD RespAdmDept2 varchar(256), ADD TechnBoardOfControl2 varchar(256), ADD DeptNo2 varchar(256), ADD Comment2 varchar(256), ADD PictureNamePrefix2 varchar(256), ADD DefaultExporter2 varchar(256), ADD UniqueKey2 varchar(256), ADD RuleSourceFile2 varchar(256) COMMIT sUPDATE customer SET name2 = name, street2 = street, zip2 = zip, city2 = city, land2 = land, tel2 = tel, fax2 = fax #UPDATE filmformat SET name2 = name &UPDATE PICTUREFORMAT SET name2 = name 8UPDATE PRESET SET ControlKey2 = ControlKey,Text2 = Text -UPDATE PROJECT SET OrderNr2 = OrderNr,OrderFor2 = OrderFor,ResponsPerson2 = ResponsPerson,ResponsPersonPhone2 = ResponsPersonPhone,SearchKey2 = SearchKey,EstateArea2 = EstateArea,EstateNo2 = EstateNo,FileNo2 = FileNo,ResponsScope2 = ResponsScope,UserDesign2 = UserDesign,EstateIdentNo2 = EstateIdentNo,Editing2 = Editing,RespAdmDept2 = RespAdmDept,TechnBoardOfControl2 = TechnBoardOfControl,DeptNo2 = DeptNo,Comment2 = Comment,PictureNamePrefix2 = PictureNamePrefix,DefaultExporter2 = DefaultExporter,UniqueKey2 = UniqueKey,RuleSourceFile2 = RuleSourceFile `ALTER TABLE customer DROP name, drop street, drop zip, drop city, drop land, drop tel, drop fax !ALTER TABLE filmformat DROP name $ALTER TABLE PICTUREFORMAT DROP name .ALTER TABLE PRESET DROP ControlKey, DROP Text zALTER TABLE PROJECT DROP OrderNr, DROP OrderFor, DROP ResponsPerson, DROP ResponsPersonPhone, DROP SearchKey, DROP EstateArea, DROP EstateNo, DROP FileNo, DROP ResponsScope, DROP UserDesign, DROP EstateIdentNo, DROP Editing, DROP RespAdmDept, DROP TechnBoardOfControl, DROP DeptNo, DROP Comment, DROP PictureNamePrefix, DROP DefaultExporter, DROP UniqueKey, DROP RuleSourceFile ALTER TABLE customer ALTER name2 TO name, ALTER street2 TO street, ALTER zip2 TO zip, ALTER city2 TO city, ALTER land2 TO land, ALTER tel2 TO tel, ALTER fax2 TO fax +ALTER TABLE filmformat ALTER name2 TO name .ALTER TABLE PICTUREFORMAT ALTER name2 TO name HALTER TABLE PRESET ALTER ControlKey2 TO ControlKey, ALTER Text2 TO Text ALTER TABLE PROJECT ALTER OrderNr2 TO OrderNr, ALTER OrderFor2 TO OrderFor, ALTER ResponsPerson2 TO ResponsPerson, ALTER ResponsPersonPhone2 TO ResponsPersonPhone, ALTER SearchKey2 TO SearchKey, ALTER EstateArea2 TO EstateArea, ALTER EstateNo2 TO EstateNo, ALTER FileNo2 TO FileNo, ALTER ResponsScope2 TO ResponsScope, ALTER UserDesign2 TO UserDesign, ALTER EstateIdentNo2 TO EstateIdentNo, ALTER Editing2 TO Editing, ALTER RespAdmDept2 TO RespAdmDept, ALTER TechnBoardOfControl2 TO TechnBoardOfControl, ALTER DeptNo2 TO DeptNo, ALTER Comment2 TO Comment, ALTER PictureNamePrefix2 TO PictureNamePrefix, ALTER DefaultExporter2 TO DefaultExporter, ALTER UniqueKey2 TO UniqueKey, ALTER RuleSourceFile2 TO RuleSourceFile COMMIT CREATE OR ALTER PROCEDURE PictureFormatByName (FormatName varchar(256)) RETURNS (PictureFormatID integer) AS BEGIN SELECT PictureFormatID FROM PictureFormat WHERE Name LIKE :FormatName INTO :PictureFormatID; IF (:PictureFormatID IS NULL) THEN PictureFormatID = -1; END CREATE OR ALTER PROCEDURE GetCustomerByID (ID integer) RETURNS( Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(1000) ) AS BEGIN SELECT Name,Street,Zip,City,Land,Tel,Fax,ExtraInfo FROM Customer WHERE CustomerID = :ID INTO :Name,:Street,:Zip,:City,:Land,:Tel,:Fax,:ExtraInfo; END CREATE OR ALTER PROCEDURE AddCustomer (Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) RETURNS (CustomerID integer) AS BEGIN CustomerID = GEN_ID(Customer_gen, 1); INSERT INTO Customer(CustomerID, Name, Street, Zip, City, Land, Tel, Fax, ExtraInfo) VALUES (:CustomerID, :Name, :Street, :Zip, :City, :Land, :Tel, :Fax, :ExtraInfo); END CREATE OR ALTER PROCEDURE FindCustomer (Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) RETURNS (CustomerID integer) AS BEGIN SELECT CustomerID FROM Customer C WHERE (Upper(C.Name) = Upper(:Name)) AND ((NullIf(C.Street, '') = '') OR (NullIf(:Street, '') = '') OR (Upper(C.Street) = Upper(:Street))) AND ((NullIf(C.Zip, '') = '') OR (NullIf(:Zip, '') = '') OR (Upper(C.Zip) = Upper(:Zip))) AND ((NullIf(C.City, '') = '') OR (NullIf(:City, '') = '') OR (Upper(C.City) = Upper(:City))) INTO :CustomerID; IF (:CustomerID IS NULL) THEN EXECUTE PROCEDURE AddCustomer(:Name, :Street, :Zip, :City, :Land, :Tel, :Fax, :ExtraInfo) RETURNING_VALUES :CustomerID; END CREATE OR ALTER PROCEDURE UpdateCustomer(ID integer, Name varchar(256), Street varchar(256), Zip varchar(256), City varchar(256), Land varchar(256), Tel varchar(256), Fax varchar(256), ExtraInfo varchar(256)) AS BEGIN IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :ID; END UPDATE Customer SET Name = :Name, Street = :Street, Zip = :Zip, City = :City, Land = :Land, Tel = :Tel, Fax = :Fax, ExtraInfo = :ExtraInfo WHERE CustomerID = :ID; END 'CREATE OR ALTER PROCEDURE FindProject(CustomerName varchar(256),ProjectNo varchar(256)) RETURNS (ProjectID integer) AS BEGIN SELECT FIRST 1 ProjectID FROM Project P INNER JOIN Customer C ON P.CustomerID=C.CustomerID WHERE C.Name=:CustomerName AND P.OrderNr=:ProjectNo INTO :ProjectID; END CREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256)) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :ManhInspDirUpwards, :UniqueKey); END 0CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), ManhInspDirUpwards smallint) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, ManhInspDirUpwards = :ManhInspDirUpwards WHERE ProjectID = :ID; END CREATE OR ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024),OrderNr varchar(256),OrderFor varchar(256),ResponsPerson varchar(256), ResponsPersonPhone varchar(256),Delivery date,Placing date,WorkStart date,WorkEnd date, SearchKey varchar(256),EstateArea varchar(256),EstateNo varchar(256),FileNo varchar(256), ResponsScope varchar(256),UserDesign varchar(256),EstateIdentNo varchar(256),Editing varchar(256), RespAdmDept varchar(256),TechnBoardOfControl varchar(256),DeptNo varchar(256),Comment varchar(256), PictureNamePrefix varchar(256),PictureFormatID integer,PictureFormat varchar(256),FilmFormatID integer, FilmFormat varchar(256),DefaultExporter varchar(256),ManhInspDirUpwards smallint,IsActive smallint, UniqueKey varchar(256) ) AS BEGIN SELECT CustomerID,Directory,OrderNr,OrderFor,ResponsPerson,ResponsPersonPhone, Delivery,Placing,WorkStart,WorkEnd,SearchKey,EstateArea,EstateNo,FileNo,ResponsScope, UserDesign,EstateIdentNo,Editing,RespAdmDept,TechnBoardOfControl,DeptNo,Comment, PictureNamePrefix,P.PictureFormatID,PF.Name AS PictureFormat, P.FilmFormatID,FF.Name AS FilmFormat,DefaultExporter,ManhInspDirUpwards,IsActive,UniqueKey FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID=PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID=FF.FilmFormatID WHERE ProjectID=:ID INTO :CustomerID,:Directory,:OrderNr,:OrderFor,:ResponsPerson,:ResponsPersonPhone, :Delivery,:Placing,:WorkStart,:WorkEnd,:SearchKey,:EstateArea,:EstateNo,:FileNo,:ResponsScope, :UserDesign,:EstateIdentNo,:Editing,:RespAdmDept,:TechnBoardOfControl,:DeptNo,:Comment, :PictureNamePrefix,:PictureFormatID,:PictureFormat,:FilmFormatID,:FilmFormat,:DefaultExporter, :ManhInspDirUpwards,:IsActive,:UniqueKey; END CREATE OR ALTER PROCEDURE AddPreset(ControlKey varchar(256), Text varchar(256), PresetCnt integer) AS DECLARE VARIABLE RecCnt integer; BEGIN IF (Text <> '') THEN BEGIN SELECT count(*) FROM Preset WHERE ControlKey=:ControlKey AND Text=:Text INTO :RecCnt; IF (RecCnt = 0) THEN BEGIN INSERT INTO Preset(PresetID,ControlKey,Timepoint,Text) VALUES(GEN_ID(Preset_gen,1),:ControlKey,'now',:Text); DELETE FROM Preset WHERE ControlKey=:ControlKey AND PresetID IN (SELECT SKIP (:PresetCnt) PresetID FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC); END ELSE BEGIN UPDATE Preset SET Timepoint='now' WHERE ControlKey=:ControlKey AND Text=:Text; END END END CREATE OR ALTER PROCEDURE GetPresets(ControlKey varchar(256), PresetCnt integer) RETURNS (Text varchar(256)) AS BEGIN FOR SELECT FIRST (:PresetCnt) DISTINCT Text FROM Preset WHERE ControlKey=:ControlKey ORDER BY Timepoint DESC INTO :Text DO BEGIN SUSPEND; END END @IGNORE PICO-630 8ALTER TABLE Project ADD InspReferencePoint varchar(256) COMMIT CREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256)) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, InspReferencePoint, ManhInspDirUpwards, UniqueKey) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :InspReferencePoint, :ManhInspDirUpwards, :UniqueKey); END {CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, InspReferencePoint = :InspReferencePoint, ManhInspDirUpwards = :ManhInspDirUpwards WHERE ProjectID = :ID; END CREATE OR ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, PictureFormat varchar(256), FilmFormatID integer, FilmFormat varchar(256), DefaultExporter varchar(256), ManhInspDirUpwards smallint, IsActive smallint, InspReferencePoint varchar(256), UniqueKey varchar(256) ) AS BEGIN SELECT CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, P.PictureFormatID, PF.Name AS PictureFormat, P.FilmFormatID, FF.Name AS FilmFormat, DefaultExporter, ManhInspDirUpwards, InspReferencePoint, IsActive, UniqueKey FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID = PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID = FF.FilmFormatID WHERE ProjectID = :ID INTO :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :PictureFormat, :FilmFormatID, :FilmFormat, :DefaultExporter, :ManhInspDirUpwards, :InspReferencePoint, :IsActive, :UniqueKey; END @IGNORE PICO-666 WALTER TABLE Project ADD OrderDesignation varchar(256), ADD OrderIdentification integer COMMIT xCREATE OR ALTER PROCEDURE AddProject(CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, UniqueKey varchar(256), OrderDesignation varchar(256), OrderIdentification integer) RETURNS (ProjectID integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; ProjectID = GEN_ID(Project_gen, 1); INSERT INTO Project(ProjectID, CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, PictureFormatID, FilmFormatID, DefaultExporter, InspReferencePoint, ManhInspDirUpwards, UniqueKey, OrderDesignation, OrderIdentification) VALUES(:ProjectID, :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :FilmFormatID, :DefaultExporter, :InspReferencePoint, :ManhInspDirUpwards, :UniqueKey, :OrderDesignation, :OrderIdentification); END CREATE OR ALTER PROCEDURE UpdateProject( ID integer, CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, FilmFormatID integer, DefaultExporter varchar(256), InspReferencePoint varchar(256), ManhInspDirUpwards smallint, OrderDesignation varchar(256), OrderIdentification integer) AS BEGIN IF (PictureFormatID <= 0) THEN PictureFormatID = NULL; IF (FilmFormatID <= 0) THEN FilmFormatID = NULL; IF ((ID IS NULL) OR (ID <= 0)) THEN BEGIN SELECT FIRST 1 ProjectID FROM Project INTO :ID; END IF ((CustomerID IS NULL) OR (CustomerID <= 0)) THEN BEGIN SELECT FIRST 1 CustomerID FROM Customer INTO :CustomerID; END UPDATE Project SET CustomerID = :CustomerID, Directory = :Directory, OrderNr = :OrderNr, OrderFor = :OrderFor, ResponsPerson = :ResponsPerson, ResponsPersonPhone = :ResponsPersonPhone, Delivery = :Delivery, Placing = :Placing, WorkStart = :WorkStart, WorkEnd = :WorkEnd, SearchKey = :SearchKey, EstateArea = :EstateArea, EstateNo = :EstateNo, FileNo = :FileNo, ResponsScope = :ResponsScope, UserDesign = :UserDesign, EstateIdentNo = :EstateIdentNo, Editing = :Editing, RespAdmDept = :RespAdmDept, TechnBoardOfControl = :TechnBoardOfControl, DeptNo = :DeptNo, Comment = :Comment, PictureNamePrefix = :PictureNamePrefix, PictureFormatID = :PictureFormatID, FilmFormatID = :FilmFormatID, DefaultExporter = :DefaultExporter, InspReferencePoint = :InspReferencePoint, ManhInspDirUpwards = :ManhInspDirUpwards, OrderDesignation = :OrderDesignation, OrderIdentification = :OrderIdentification WHERE ProjectID = :ID; END ,CREATE OR ALTER PROCEDURE GetProjectByID (ID integer) RETURNS ( CustomerID integer, Directory varchar(1024), OrderNr varchar(256), OrderFor varchar(256), ResponsPerson varchar(256), ResponsPersonPhone varchar(256), Delivery date, Placing date, WorkStart date, WorkEnd date, SearchKey varchar(256), EstateArea varchar(256), EstateNo varchar(256), FileNo varchar(256), ResponsScope varchar(256), UserDesign varchar(256), EstateIdentNo varchar(256), Editing varchar(256), RespAdmDept varchar(256), TechnBoardOfControl varchar(256), DeptNo varchar(256), Comment varchar(256), PictureNamePrefix varchar(256), PictureFormatID integer, PictureFormat varchar(256), FilmFormatID integer, FilmFormat varchar(256), DefaultExporter varchar(256), ManhInspDirUpwards smallint, IsActive smallint, InspReferencePoint varchar(256), UniqueKey varchar(256), OrderDesignation varchar(256), OrderIdentification integer ) AS BEGIN SELECT CustomerID, Directory, OrderNr, OrderFor, ResponsPerson, ResponsPersonPhone, Delivery, Placing, WorkStart, WorkEnd, SearchKey, EstateArea, EstateNo, FileNo, ResponsScope, UserDesign, EstateIdentNo, Editing, RespAdmDept, TechnBoardOfControl, DeptNo, Comment, PictureNamePrefix, P.PictureFormatID, PF.Name AS PictureFormat, P.FilmFormatID, FF.Name AS FilmFormat, DefaultExporter, ManhInspDirUpwards, InspReferencePoint, IsActive, UniqueKey, OrderDesignation, OrderIdentification FROM Project P LEFT OUTER JOIN PictureFormat PF ON P.PictureFormatID = PF.PictureFormatID LEFT OUTER JOIN FilmFormat FF ON P.FilmFormatID = FF.FilmFormatID WHERE ProjectID = :ID INTO :CustomerID, :Directory, :OrderNr, :OrderFor, :ResponsPerson, :ResponsPersonPhone, :Delivery, :Placing, :WorkStart, :WorkEnd, :SearchKey, :EstateArea, :EstateNo, :FileNo, :ResponsScope, :UserDesign, :EstateIdentNo, :Editing, :RespAdmDept, :TechnBoardOfControl, :DeptNo, :Comment, :PictureNamePrefix, :PictureFormatID, :PictureFormat, :FilmFormatID, :FilmFormat, :DefaultExporter, :ManhInspDirUpwards, :InspReferencePoint, :IsActive, :UniqueKey, :OrderDesignation, :OrderIdentification; END @IGNORE &INSERT INTO FilmFormat VALUES(5,'HD') EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'PREFIX')) THEN EXECUTE STATEMENT 'CREATE TABLE Prefix (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20))'; END CREATE OR ALTER PROCEDURE GetAbbrPrefixes RETURNS (PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN SELECT FIRST 1 PrefixReach,PrefixHouseConnection,PrefixManhole FROM Prefix INTO :PrefixReach,:PrefixHouseConnection,:PrefixManhole; END CREATE OR ALTER PROCEDURE SetAbbrPrefixes(PrefixReach varchar(20),PrefixHouseConnection varchar(20),PrefixManhole varchar(20)) AS BEGIN DELETE FROM Prefix; INSERT INTO Prefix VALUES (:PrefixReach,:PrefixHouseConnection,:PrefixManhole); END ALTER PROCEDURE FindAbbr(AbbrCode varchar(10),AbbrClassCode varchar(10)) RETURNS(AbbrID integer) AS BEGIN FOR SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID INNER JOIN AbbrClassText ACTX ON AC.AbbrClassID=ACTX.AbbrClassID INNER JOIN Language L1 ON ACTX.LanguageID=L1.LanguageID AND L1.IsActive=1 INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L2 ON ATX.LanguageID=L2.LanguageID AND L1.IsActive=1, Prefix P WHERE (ATX.Code=:AbbrCode OR P.PrefixReach||ATX.Code=:AbbrCode OR P.PrefixHouseConnection||ATX.Code=:AbbrCode OR P.PrefixManhole||ATX.Code=:AbbrCode) AND AC.Code=:AbbrClassCode INTO :AbbrID DO BEGIN SUSPEND; END END 1INSERT INTO SpecialAbbrClass VALUES(16,'MISCHR') @INSERT INTO SpecialAbbrClassText VALUES(16,2,'Mischwasserrohr') 0INSERT INTO SpecialAbbrClass VALUES(17,'REGNR') @INSERT INTO SpecialAbbrClassText VALUES(17,2,'Regenwasserrohr') 0INSERT INTO SpecialAbbrClass VALUES(18,'SCHMR') BINSERT INTO SpecialAbbrClassText VALUES(18,2,'Schmutzwasserrohr') &CREATE GENERATOR SpecialAbbrClass_gen COMMIT CREATE PROCEDURE AddSpecialAbbrClass(SpecialID integer,Code varchar(10),FullText varchar(256),LanguageID integer) RETURNS(SpecialAbbrClassID integer) AS BEGIN IF (SpecialID = 0) THEN BEGIN SpecialID = GEN_ID(SpecialAbbrClass_gen,1); END INSERT INTO SpecialAbbrClass(SpecialAbbrClassID,Code) VALUES (:SpecialID,:Code); INSERT INTO SpecialAbbrClassText(SpecialAbbrClassID,LanguageID,FullText) VALUES (:SpecialID,:LanguageID,:FullText); SpecialAbbrClassID = SpecialID; END CREATE VIEW Abbrs (AbbrID,Code,FullText) AS SELECT A.AbbrID,ATX.Code,ATX.FullText FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 XCREATE TABLE DebugLog2(msg varchar(1024)) --ALTER PROCEDURE GetAvailableAbbrStageValues $COMMIT --ALTER PROCEDURE UpdateAbbr ALTER PROCEDURE AddAbbrSet (Name varchar(40),FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN SELECT AbbrSetID FROM AbbrSet WHERE Upper(Name)=Upper(:Name) INTO :AbbrSetID; IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen,1); INSERT INTO AbbrSet(AbbrSetID,Name,FullName) VALUES(:AbbrSetID,:Name,:FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET FullName=:FullName WHERE AbbrSetID=:AbbrSetID; END END END YINSERT INTO DebugLog2(msg) VALUES ('Ping') --ALTER PROCEDURE GetAvailableAbbrStageValues YINSERT INTO DebugLog2(msg) VALUES ('Ping') --ALTER PROCEDURE GetAvailableAbbrStageValues ALTER PROCEDURE GetAvailableAbbrStageValues(Mode varchar(5),CurrentVal varchar(10),Stage smallint) RETURNS(AbbrID integer,Code varchar(10),FullText varchar(256)) AS BEGIN FOR SELECT ATX.AbbrID,ATX.Code,ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID=ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code=:Mode||:Stage WHERE ATX.Code LIKE :CurrentVal||'_%' ESCAPE '!' UNION SELECT ATX.AbbrID,ATX.Code,ATX.FullText FROM AbbrText ATX INNER JOIN Abbr A ON A.AbbrID=ATX.AbbrID INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code=:Mode||:Stage WHERE (ATX.Code LIKE '_') AND EXISTS (SELECT * FROM AbbrText ATX2 INNER JOIN Abbr A2 ON A2.AbbrID=ATX2.AbbrID INNER JOIN AbbrClass AC2 ON A2.AbbrClassID=AC2.AbbrClassID AND AC2.Code=:Mode WHERE ATX2.Code LIKE :CurrentVal||(CASE WHEN ATX.Code='_' THEN '!_' ELSE ATX.Code END)||'%' ESCAPE '!') ORDER BY 2 INTO :AbbrID,:Code,:FullText DO BEGIN SUSPEND; END END (ALTER TABLE Abbr ADD IsDefault smallint COMMIT GINSERT INTO DebugLog2(msg) VALUES('Ping') --ALTER PROCEDURE UpdateAbbr >ALTER PROCEDURE UpdateAbbr (AbbrID integer,LanguageID integer,Code varchar(10),FullText varchar(256), Unit1 varchar(20),Unit2 varchar(20),RevCode varchar(10),QuickAccess smallint,IsDefault smallint) AS DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); UPDATE Abbr SET Unit1=:Unit1ID,Unit2=:Unit2ID,IsQuickAccess=:QuickAccess WHERE AbbrID=:AbbrID; UPDATE AbbrText SET Code=:Code,FullText=:FullText WHERE AbbrID=:AbbrID AND LanguageID=:LanguageID; SELECT AbbrClassID FROM Abbr WHERE AbbrID=:AbbrID INTO :ClassID; /*updating IsDefault for the whole category*/ IF (IsDefault > 0) THEN BEGIN UPDATE Abbr SET IsDefault = 0 WHERE AbbrClassID=:ClassID; UPDATE Abbr SET IsDefault=:IsDefault WHERE AbbrID=:AbbrID; END /*searching for reverse code*/ IF ((:RevCode IS NOT NULL) AND (:RevCode <> '')) THEN BEGIN SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :RevCode INTO RevAbbrID; IF (:RevAbbrID IS NULL) THEN BEGIN RevAbbrID = GEN_ID(Abbr_gen,1); INSERT INTO Abbr(AbbrID,AbbrClassID) VALUES (:RevAbbrID,:ClassID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:AbbrID,:RevAbbrID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:RevAbbrID,:AbbrID); INSERT INTO AbbrText(AbbrID,LanguageID,Code) VALUES (:RevAbbrID,:LanguageID,:RevCode); END END END D--ALTER PROCEDURE AddAbbr INSERT INTO DebugLog2(msg) VALUES('Ping') (UPDATE AbbrClassText SET LanguageID = 1 #UPDATE AbbrText SET LanguageID = 1 pDELETE FROM SpecialAbbrClassText WHERE SpecialAbbrClassID=12 AND LanguageID=2 and FullText='Senkrechte Schaden' /UPDATE SpecialAbbrClassText SET languageID = 1 COMMIT +DELETE FROM LANGUAGE WHERE LanguageID <> 1 /UPDATE Language SET name='Default',isActive=1; G--ALTER PROCEDURE UpdateAbbr INSERT INTO DebugLog2(msg) VALUES('Ping') G--ALTER PROCEDURE UpdateAbbr INSERT INTO DebugLog2(msg) VALUES('Ping') G--ALTER PROCEDURE UpdateAbbr INSERT INTO DebugLog2(msg) VALUES('Ping') G--ALTER PROCEDURE UpdateAbbr INSERT INTO DebugLog2(msg) VALUES('Ping') KALTER TABLE Abbr ADD AdditionalCodeCategoryID integer REFERENCES AbbrClass COMMIT ALTER PROCEDURE UpdateAbbr (AbbrID integer,LanguageID integer,Code varchar(10),FullText varchar(256), Unit1 varchar(20),Unit2 varchar(20),RevCode varchar(10),QuickAccess smallint,IsDefault smallint,AdditionalCodeCategory varchar(10)) AS DECLARE VARIABLE ClassID integer; DECLARE VARIABLE AdditionalClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE FindUnit(:Unit1) RETURNING_VALUES(:Unit1ID); EXECUTE PROCEDURE FindUnit(:Unit2) RETURNING_VALUES(:Unit2ID); SELECT AbbrClassID FROM AbbrClass WHERE Code=:AdditionalCodeCategory INTO :AdditionalClassID; UPDATE Abbr SET Unit1=:Unit1ID,Unit2=:Unit2ID,IsQuickAccess=:QuickAccess,AdditionalCodeCategoryID=:AdditionalClassID WHERE AbbrID=:AbbrID; UPDATE AbbrText SET Code=:Code,FullText=:FullText WHERE AbbrID=:AbbrID AND LanguageID=:LanguageID; SELECT AbbrClassID FROM Abbr WHERE AbbrID=:AbbrID INTO :ClassID; /*updating IsDefault for the whole category*/ IF (IsDefault > 0) THEN BEGIN UPDATE Abbr SET IsDefault = 0 WHERE AbbrClassID=:ClassID; UPDATE Abbr SET IsDefault=:IsDefault WHERE AbbrID=:AbbrID; END /*searching for reverse code*/ DELETE FROM RevAbbr WHERE AbbrID=:AbbrID OR RevAbbrID=:AbbrID; IF ((:RevCode IS NOT NULL) AND (:RevCode <> '')) THEN BEGIN SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID WHERE AbbrClassID = :ClassID AND Code = :RevCode INTO RevAbbrID; IF (:RevAbbrID IS NULL) THEN BEGIN RevAbbrID = GEN_ID(Abbr_gen,1); INSERT INTO Abbr(AbbrID,AbbrClassID) VALUES (:RevAbbrID,:ClassID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:AbbrID,:RevAbbrID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:RevAbbrID,:AbbrID); INSERT INTO AbbrText(AbbrID,LanguageID,Code) VALUES (:RevAbbrID,:LanguageID,:RevCode); END ELSE BEGIN INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:AbbrID,:RevAbbrID); INSERT INTO RevAbbr(AbbrID,RevAbbrID) VALUES (:RevAbbrID,:AbbrID); END END END ALTER PROCEDURE AddAbbr (AbbrSet varchar(40),ClassCode varchar(10),Code varchar(10),FullText varchar(256), Unit1 varchar(20),Unit2 varchar(20),RevCode varchar(10),QuickAccess smallint, IsDefault smallint,LanguageID integer,AdditionalCodeCategory varchar(10)) RETURNS (AbbrID integer) AS DECLARE VARIABLE SetID integer; DECLARE VARIABLE ClassID integer; DECLARE VARIABLE RevAbbrID integer; DECLARE VARIABLE Unit1ID integer; DECLARE VARIABLE Unit2ID integer; BEGIN EXECUTE PROCEDURE AddAbbrSet(:AbbrSet,'') RETURNING_VALUES :SetID; EXECUTE PROCEDURE AddAbbrClass(:AbbrSet,:ClassCode,NULL,:LanguageID) RETURNING_VALUES :ClassID; /*searching for current code*/ SELECT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID WHERE AbbrClassID = :ClassID AND LanguageID = :LanguageID AND Code = :Code INTO AbbrID; IF (:AbbrID IS NULL) THEN BEGIN AbbrID = GEN_ID(Abbr_gen,1); INSERT INTO Abbr(AbbrID,AbbrClassID) VALUES (:AbbrID,:ClassID); INSERT INTO AbbrText(AbbrID,LanguageID,Code) VALUES (:AbbrID,:LanguageID,:Code); END EXECUTE PROCEDURE UpdateAbbr(:AbbrID,:LanguageID,:Code,:FullText,:Unit1,:Unit2,:RevCode,:QuickAccess,:IsDefault,:AdditionalCodeCategory); END pEXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; DECLARE VARIABLE Code varchar(10); DECLARE VARIABLE CategoryID integer; BEGIN FOR SELECT A.AbbrID,U1.Name FROM Abbr A INNER JOIN Unit U1 ON A.Unit1=U1.UnitID WHERE U1.NAME IN ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','U','V','W','X','Y','Z') INTO AbbrID,Code DO BEGIN SELECT FIRST 1 AbbrClassID FROM AbbrClass WHERE Code=:Code INTO CategoryID; UPDATE Abbr AB SET AdditionalCodeCategoryID=:CategoryID, Unit1=NULL WHERE AbbrID=:AbbrID; END FOR SELECT A.AbbrID FROM Abbr A INNER JOIN Unit U1 ON A.Unit1=U1.UnitID WHERE U1.NAME ='T' INTO AbbrID DO BEGIN SELECT FIRST 1 AbbrClassID FROM AbbrClass WHERE Code='SN' INTO CategoryID; UPDATE Abbr AB SET AdditionalCodeCategoryID=:CategoryID, Unit1=NULL WHERE AbbrID=:AbbrID; END END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'WIZARD')) THEN EXECUTE STATEMENT 'CREATE TABLE Wizard(WizardID integer NOT NULL PRIMARY KEY,Name varchar(50))'; END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$generators WHERE rdb$generator_name = 'WIZARD_GEN')) THEN EXECUTE STATEMENT 'CREATE GENERATOR Wizard_gen'; END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'WIZARDFIELD')) THEN EXECUTE STATEMENT 'CREATE TABLE WizardField(WizardFieldID integer NOT NULL PRIMARY KEY,WizardID integer NOT NULL REFERENCES Wizard ON DELETE CASCADE,Name varchar(50))'; END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$generators WHERE rdb$generator_name = 'WIZARDFIELD_GEN')) THEN EXECUTE STATEMENT 'CREATE GENERATOR WizardField_gen'; END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'RULE')) THEN EXECUTE STATEMENT 'CREATE TABLE Rule(RuleID integer NOT NULL PRIMARY KEY,WizardFieldID integer REFERENCES WizardField ON DELETE SET NULL,Name varchar(100),Code varchar(8191))'; END EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$generators WHERE rdb$generator_name = 'RULE_GEN')) THEN EXECUTE STATEMENT 'CREATE GENERATOR Rule_gen'; END CRECREATE PROCEDURE GetRule(Wizard varchar(50), WizardField varchar(50), RuleName varchar(100)) RETURNS (RuleCode varchar(8191)) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID=R.WizardFieldID INNER JOIN Wizard W ON W.WizardID=F.WizardID WHERE R.Name = :RuleName INTO :RuleCode; END ELSE BEGIN SELECT Code FROM Rule WHERE Name = :RuleName INTO :RuleCode; END END; ZALTER PROCEDURE AddAbbrSet (Name varchar(40),FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN IF (Name = '') THEN BEGIN SELECT FIRST 1 AbbrSetID FROM AbbrSet INTO :AbbrSetID; END ELSE BEGIN SELECT AbbrSetID FROM AbbrSet WHERE Upper(Name)=Upper(:Name) INTO :AbbrSetID; END IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen,1); INSERT INTO AbbrSet(AbbrSetID,Name,FullName) VALUES(:AbbrSetID,:Name,:FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET FullName=:FullName WHERE AbbrSetID=:AbbrSetID; END END END ALTER PROCEDURE AddAbbrClass (AbbrSet varchar(40),Code varchar(10),FullText varchar(256),LanguageID integer) RETURNS (AbbrClassID integer) AS DECLARE VARIABLE AbbrSetID integer; DECLARE VARIABLE CurrClassName varchar(256); BEGIN EXECUTE PROCEDURE AddAbbrSet(AbbrSet,'') RETURNING_VALUES(:AbbrSetID); SELECT ACT.AbbrClassID,ACT.FullText FROM AbbrClassText ACT INNER JOIN AbbrClass AC ON ACT.AbbrClassID = AC.AbbrClassID INNER JOIN AbbrSet ASet ON AC.AbbrSetID=ASet.AbbrSetID WHERE Code=:Code AND LanguageID=:LanguageID INTO :AbbrClassID,:CurrClassName; IF (:AbbrClassID IS NULL) THEN BEGIN AbbrClassID = GEN_ID(AbbrClass_gen,1); INSERT INTO AbbrClass(AbbrClassID,AbbrSetID,Code) VALUES(:AbbrClassID,:AbbrSetID,:Code); INSERT INTO AbbrClassText(AbbrClassID,LanguageID,FullText) VALUES(:AbbrClassID,:LanguageID,:FullText); END ELSE BEGIN IF ((:FullText IS NOT NULL) AND (:FullText <> :CurrClassName)) THEN BEGIN UPDATE AbbrClassText SET FullText=:FullText WHERE AbbrClassID=:AbbrClassID AND LanguageID=:LanguageID; END END END =CREATE VIEW Abbrs2 (AbbrID,Code,FullText,AbbrClassID,AbbrClassCode) AS SELECT A.AbbrID,ATX.Code,ATX.FullText,AC.AbbrClassID,AC.Code FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID INNER JOIN Language L ON ATX.LanguageID=L.LanguageID AND L.IsActive=1 INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID 1INSERT INTO SpecialAbbrClass VALUES(19,'INFLOW') BINSERT INTO SpecialAbbrClassText VALUES(19,1,'Fliessrichtung in') 1INSERT INTO SpecialAbbrClass VALUES(20,'AGFLOW') EINSERT INTO SpecialAbbrClassText VALUES(20,1,'Fliessrichtung gegen') N--INSERT INTO LAbbrSpecialAbbrClass INSERT INTO DebugLog2(msg) VALUES('Ping') N--INSERT INTO LAbbrSpecialAbbrClass INSERT INTO DebugLog2(msg) VALUES('Ping') COMMIT EXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; BEGIN SELECT FIRST 1 A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code='LF' INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID AND ATX.Code='0' INTO :AbbrID; INSERT INTO DebugLog2(msg) VALUES(CAST(:AbbrID AS varchar(10))); IF (AbbrID IS NOT NULL) THEN BEGIN INSERT INTO LAbbrSpecialAbbrClass(SpecialAbbrClassID,AbbrID) VALUES (19, :AbbrID); END END yEXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; BEGIN SELECT FIRST 1 A.AbbrID FROM Abbr A INNER JOIN AbbrClass AC ON A.AbbrClassID=AC.AbbrClassID AND AC.Code='LF' INNER JOIN AbbrText ATX ON A.AbbrID=ATX.AbbrID AND ATX.Code='1' INTO :AbbrID; IF (AbbrID IS NOT NULL) THEN BEGIN INSERT INTO LAbbrSpecialAbbrClass(SpecialAbbrClassID,AbbrID) VALUES (20, :AbbrID); END END /INSERT INTO SpecialAbbrClass VALUES(21, 'LFT') 8INSERT INTO SpecialAbbrClassText VALUES(21, 1, 'Links') 0INSERT INTO SpecialAbbrClass VALUES(22, 'RGHT') 9INSERT INTO SpecialAbbrClassText VALUES(22, 1, 'Rechts') /INSERT INTO SpecialAbbrClass VALUES(23, 'TOP') 7INSERT INTO SpecialAbbrClassText VALUES(23, 1, 'Oben') /INSERT INTO SpecialAbbrClass VALUES(24, 'BTM') 8INSERT INTO SpecialAbbrClassText VALUES(24, 1, 'Unten') CREATE VIEW LeftDirectionCodesLetter (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE SUBSTRING(ATX.Code FROM 4 FOR 1) = 'L' AND AC.CODE = 'S' CREATE VIEW RightDirectionCodesLetter (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE SUBSTRING(ATX.Code FROM 4 FOR 1) = 'R' AND AC.CODE = 'S' CREATE VIEW TopDirectionCodesLetter (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE SUBSTRING(ATX.Code FROM 4 FOR 1) = 'O' AND AC.CODE = 'S' CREATE VIEW BottomDirectionCodesLetter (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE SUBSTRING(ATX.Code FROM 4 FOR 1) = 'U' AND AC.CODE = 'S' CREATE VIEW LeftDirectionCodesFull (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE ATX.Code IN ('CCAA', 'CCAB', 'CCAY') AND AC.CODE = 'S' CREATE VIEW RightDirectionCodesFull (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE ATX.Code IN ('CCBA', 'CCBB', 'CCBY') AND AC.CODE = 'S' CREATE VIEW TopDirectionCodesFull (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE ATX.Code IN ('CCAA', 'CCBA', 'CCYA') AND AC.CODE = 'S' CREATE VIEW BottomDirectionCodesFull (AbbrID) AS SELECT DISTINCT A.AbbrID FROM Abbr A INNER JOIN AbbrText ATX ON A.AbbrID = ATX.AbbrID INNER JOIN ABBRCLASS AC ON A.ABBRCLASSID = AC.ABBRCLASSID WHERE ATX.Code IN ('CCAB', 'CCBB', 'CCYB') AND AC.CODE = 'S' CREATE PROCEDURE GetViewStatement (ViewName varchar(100)) RETURNS (Result varchar(100)) AS DECLARE VARIABLE AbbrSetName varchar(100); DECLARE VARIABLE AbbrSetDescription varchar(100); BEGIN SELECT FIRST 1 Name, FullName FROM AbbrSet INTO :AbbrSetName, :AbbrSetDescription; IF ((POSITION ('ISYBAU96' IN AbbrSetName) > 0) OR (POSITION ('ATV' IN AbbrSetName) > 0) OR (POSITION ('ISYBAU2001' IN AbbrSetName) > 0) OR (POSITION ('011' IN AbbrSetName) > 0) OR ((POSITION ('009' IN AbbrSetName) > 0) AND (POSITION ('finition des codes' IN AbbrSetDescription) = 0)) OR ((AbbrSetName = '') AND (AbbrSetDescription = 'Definizione delle abbreviazioni'))) THEN BEGIN Result = 'SELECT AbbrID FROM ' || ViewName || 'Letter'; END ELSE IF ((POSITION ('EN13508' IN AbbrSetName) > 0) OR (POSITION ('ISYBAU06' IN AbbrSetName) > 0)) THEN BEGIN Result = 'SELECT AbbrID FROM ' || ViewName || 'Full'; END ELSE BEGIN Result = ''; END SUSPEND; END /CREATE PROCEDURE GetLeftDirectionCodes RETURNS (AbbrID integer) AS DECLARE VARIABLE Stmt varchar(200); BEGIN SELECT Result FROM GetViewStatement('LeftDirectionCodes') INTO :Stmt; IF (Stmt <> '') THEN BEGIN FOR EXECUTE STATEMENT Stmt INTO :AbbrID DO BEGIN SUSPEND; END END END 1CREATE PROCEDURE GetRightDirectionCodes RETURNS (AbbrID integer) AS DECLARE VARIABLE Stmt varchar(200); BEGIN SELECT Result FROM GetViewStatement('RightDirectionCodes') INTO :Stmt; IF (Stmt <> '') THEN BEGIN FOR EXECUTE STATEMENT Stmt INTO :AbbrID DO BEGIN SUSPEND; END END END -CREATE PROCEDURE GetTopDirectionCodes RETURNS (AbbrID integer) AS DECLARE VARIABLE Stmt varchar(200); BEGIN SELECT Result FROM GetViewStatement('TopDirectionCodes') INTO :Stmt; IF (Stmt <> '') THEN BEGIN FOR EXECUTE STATEMENT Stmt INTO :AbbrID DO BEGIN SUSPEND; END END END 3CREATE PROCEDURE GetBottomDirectionCodes RETURNS (AbbrID integer) AS DECLARE VARIABLE Stmt varchar(200); BEGIN SELECT Result FROM GetViewStatement('BottomDirectionCodes') INTO :Stmt; IF (Stmt <> '') THEN BEGIN FOR EXECUTE STATEMENT Stmt INTO :AbbrID DO BEGIN SUSPEND; END END END COMMIT EXECUTE BLOCK AS DECLARE VARIABLE AbbrID integer; BEGIN FOR SELECT AbbrID FROM GetLeftDirectionCodes INTO AbbrID DO BEGIN INSERT INTO LAbbrSpecialAbbrClass (SpecialAbbrClassID, AbbrID) VALUES (21, :AbbrID); END FOR SELECT AbbrID FROM GetRightDirectionCodes INTO AbbrID DO BEGIN INSERT INTO LAbbrSpecialAbbrClass (SpecialAbbrClassID, AbbrID) VALUES (22, :AbbrID); END FOR SELECT AbbrID FROM GetTopDirectionCodes INTO AbbrID DO BEGIN INSERT INTO LAbbrSpecialAbbrClass (SpecialAbbrClassID, AbbrID) VALUES (23, :AbbrID); END FOR SELECT AbbrID FROM GetBottomDirectionCodes INTO AbbrID DO BEGIN INSERT INTO LAbbrSpecialAbbrClass (SpecialAbbrClassID, AbbrID) VALUES (24, :AbbrID); END END %DROP PROCEDURE GetLeftDirectionCodes &DROP PROCEDURE GetRightDirectionCodes $DROP PROCEDURE GetTopDirectionCodes 'DROP PROCEDURE GetBottomDirectionCodes DROP PROCEDURE GetViewStatement #DROP VIEW LeftDirectionCodesLetter $DROP VIEW RightDirectionCodesLetter "DROP VIEW TopDirectionCodesLetter %DROP VIEW BottomDirectionCodesLetter !DROP VIEW LeftDirectionCodesFull "DROP VIEW RightDirectionCodesFull DROP VIEW TopDirectionCodesFull #DROP VIEW BottomDirectionCodesFull COMMIT SRECREATE PROCEDURE GetRule(Wizard varchar(50), WizardField varchar(50), RuleName varchar(100)) RETURNS (RuleCode varchar(8191)) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID=R.WizardFieldID INNER JOIN Wizard W ON W.WizardID=F.WizardID WHERE R.Name = :RuleName INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName INTO :RuleCode; END END; ALTER PROCEDURE AddAbbrSet (Name varchar(40),FullName varchar(256)) RETURNS (AbbrSetID integer) AS BEGIN SELECT AbbrSetID FROM AbbrSet INTO :AbbrSetID; IF (:AbbrSetID IS NULL) THEN BEGIN AbbrSetID = GEN_ID(AbbrSet_gen,1); INSERT INTO AbbrSet(AbbrSetID,Name,FullName) VALUES(:AbbrSetID,:Name,:FullName); END ELSE BEGIN IF (FullName <> '') THEN BEGIN UPDATE AbbrSet SET FullName=:FullName WHERE AbbrSetID=:AbbrSetID; END END END ;UPDATE OR INSERT INTO SpecialAbbrClass VALUES(19,'INFLOW') LUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(19,1,'Fliessrichtung in') ;UPDATE OR INSERT INTO SpecialAbbrClass VALUES(20,'AGFLOW') OUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(20,1,'Fliessrichtung gegen') 9UPDATE OR INSERT INTO SpecialAbbrClass VALUES(21, 'LFT') BUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(21, 1, 'Links') :UPDATE OR INSERT INTO SpecialAbbrClass VALUES(22, 'RGHT') CUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(22, 1, 'Rechts') 9UPDATE OR INSERT INTO SpecialAbbrClass VALUES(23, 'TOP') AUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(23, 1, 'Oben') 9UPDATE OR INSERT INTO SpecialAbbrClass VALUES(24, 'BTM') BUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(24, 1, 'Unten') @IGNORE EXECUTE BLOCK AS BEGIN IF (NOT EXISTS(SELECT 1 FROM rdb$relations WHERE rdb$relation_name = 'ABBRCODEGRID')) THEN EXECUTE STATEMENT 'CREATE TABLE AbbrCodeGrid(AbbrID integer NOT NULL REFERENCES Abbr,RowNo integer,ColumnNo integer)'; END :UPDATE OR INSERT INTO SpecialAbbrClass VALUES(25, 'MCIn') WUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(25, 1, 'Schachtanschluss - Einlauf') ;UPDATE OR INSERT INTO SpecialAbbrClass VALUES(26, 'MCOut') WUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(26, 1, 'Schachtanschluss - Auslauf') 8UPDATE OR INSERT INTO SpecialAbbrClass VALUES(27, 'MC') MUPDATE OR INSERT INTO SpecialAbbrClassText VALUES(27, 1, 'Schachtanschluss') @IGNORE uRECREATE PROCEDURE GetRule(Wizard varchar(50), WizardField varchar(50), RuleName varchar(100)) RETURNS (RuleCode varchar(8191)) AS DECLARE VARIABLE WizardID integer; DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; BEGIN IF ((Wizard IS NOT NULL) AND (WizardField IS NOT NULL)) THEN BEGIN SELECT FIRST 1 Code FROM Rule R INNER JOIN WizardField F ON F.WizardFieldID=R.WizardFieldID INNER JOIN Wizard W ON W.WizardID=F.WizardID WHERE R.Name = :RuleName ORDER BY R.RuleID INTO :RuleCode; END ELSE BEGIN SELECT FIRST 1 Code FROM Rule WHERE Name = :RuleName ORDER BY RuleID INTO :RuleCode; END END; $CREATE PROCEDURE AddWizard(WizardName varchar(50)) RETURNS (WizardID integer) AS BEGIN SELECT WizardID FROM Wizard WHERE Name = :WizardName INTO :WizardID; IF (WizardID IS NULL) THEN BEGIN WizardID = GEN_ID(Wizard_gen, 1); INSERT INTO Wizard VALUES(:WizardID, :WizardName); END END; CREATE PROCEDURE AddWizardField(WizardName varchar(50), FieldName varchar(50)) RETURNS (WizardFieldID integer) AS DECLARE VARIABLE WizardID integer; BEGIN EXECUTE PROCEDURE AddWizard(:WizardName) RETURNING_VALUES :WizardID; SELECT WizardFieldID FROM WizardField WHERE WizardID = :WizardID AND Name = :FieldName INTO :WizardFieldID; IF (WizardFieldID IS NULL) THEN BEGIN WizardFieldID = GEN_ID(WizardField_gen, 1); INSERT INTO WizardField VALUES(:WizardFieldID, :WizardID, :FieldName); END END; CREATE PROCEDURE AddRule (WizardName varchar(50), WizardFieldName varchar(50), RuleName varchar(100), RuleCode varchar(8191)) AS DECLARE VARIABLE WizardFieldID integer; DECLARE VARIABLE RuleID integer; DECLARE VARIABLE Cnt integer; BEGIN IF ((WizardName IS NOT NULL) AND (WizardFieldName IS NOT NULL)) THEN BEGIN EXECUTE PROCEDURE AddWizardField(:WizardName, :WizardFieldName) RETURNING_VALUES WizardFieldID; END ELSE BEGIN WizardFieldID = NULL; END IF (:WizardFieldID IS NULL) THEN SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID IS NULL AND Name=:RuleName INTO :RuleID; ELSE SELECT FIRST 1 RuleID FROM Rule WHERE WizardFieldID=:WizardFieldID AND Name=:RuleName INTO :RuleID; IF (RuleID IS NOT NULL) THEN BEGIN UPDATE Rule SET Code=:RuleCode WHERE RuleID=:RuleID; END ELSE BEGIN RuleID = GEN_ID(Rule_gen, 1); INSERT INTO Rule VALUES (:RuleID, :WizardFieldID, :RuleName, :RuleCode); END END; ALTER INDEX UNIT_IDX INACTIVE )ALTER PROCEDURE FindUnit(Name varchar(20)) RETURNS (UnitID integer) AS BEGIN SELECT First 1 UnitID FROM Unit WHERE Name=:Name INTO :UnitID; IF ((:UnitID IS NULL) AND (:Name IS NOT NULL)) THEN BEGIN UnitID = GEN_ID(Unit_gen,1); INSERT INTO Unit(UnitID,Name) VALUES (:UnitID,:Name); END END &=O8‚7$B:DBSysInitSystem