[613] | 1 | DMSQS ;SFISC/JHM-BUILD STANDARD SCHEMA ;7/31/97 13:55
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | SCHEMA ;BUILD OR REPLACE SQLI SCHEMA
|
---|
| 6 | N SI,TT,IEN,FDA
|
---|
| 7 | S SI=$O(^DMSQ("S","B","SQLI",""))
|
---|
| 8 | S TT=1.521,IEN=$S(SI:SI,1:"+1")_","
|
---|
| 9 | S FDA(TT,IEN,.01)="SQLI" ; SCHEMA NAME
|
---|
| 10 | S FDA(TT,IEN,2)="FileMan SQL/ODBC interface tables" ; COMMENT
|
---|
| 11 | S SI=$$PUT^DMSQU(IEN,"FDA","ERR")
|
---|
| 12 | I $D(ERR)!'SI D ERR^DMSQU(1.521,"","SCHEMA: RECORD INSERT FAILED")
|
---|
| 13 | Q
|
---|
| 14 | ALLS Q:$G(DUZ(0))'["@" N TI,@$$NEW^DMSQU D ENV^DMSQU S TI=0
|
---|
| 15 | F S TI=$O(^DMSQ("T",TI)) Q:'TI D STEXE
|
---|
| 16 | Q
|
---|
| 17 | STATS(TI) ;DO NODE STATISTICS FOR TABLE TI
|
---|
| 18 | Q:$G(DUZ(0))'["@" ;NOT FOR NON-PROGRAMMERS
|
---|
| 19 | Q:'$D(^DMSQ("T",TI,0)) ;NO GLOBAL STRUCTURE ON FILE
|
---|
| 20 | N @$$NEW^DMSQU D ENV^DMSQU
|
---|
| 21 | STEXE N T,MT,G,G0,CND,K,O,INI,C,MC,I,CT,TT,IEN,FDA,ERR,PI,PEI,F
|
---|
| 22 | S T=^DMSQ("T",TI,0),MT=$P(T,U,4),(G0,G)=$G(^(1)) Q:G=""
|
---|
| 23 | S CND=$S(MT:"K(OI)]""""",1:"K(OI)"),INI=$S(MT:"",1:0),MC=5000
|
---|
| 24 | S (CT,O)=0,F="{K}" F Q:G'[F D
|
---|
| 25 | . S O=O+1,K="K("_O_")"
|
---|
| 26 | . S G(O)=$P(G,F)_K_")",C(O)=0,G=$P(G,F)_K_$P(G,F,2,9)
|
---|
| 27 | S K(1)=INI D CNT(1)
|
---|
| 28 | I CT=MC S OI=1 D
|
---|
| 29 | . F I=2:1:O S C(I)=C(I)/C(1)
|
---|
| 30 | . F S K(1)=$O(@G(1)),@("K="_CND) Q:'K S C(1)=C(1)+1
|
---|
| 31 | . F I=2:1:O S C(I)=C(I)*C(1) I C(I)["." D
|
---|
| 32 | . . S C(I)=$S(C(I)<10:+$J(C(I),"",2),C(I)<100:+$J(C(I),"",1),1:C(I)\1)
|
---|
| 33 | K ^STATS(TI) M ^STATS(TI)=C ;REMOVE AFTER DEBUG
|
---|
| 34 | ;STORE T_ROW_COUNT IN SQLI_TABLE
|
---|
| 35 | S TT=1.5215,IEN=TI_"," K FDA
|
---|
| 36 | S FDA(TT,IEN,5)=C(O) ;NUMBER OF ROWS IN TABLE
|
---|
| 37 | S C=$$PUT^DMSQU(IEN,"FDA","ERR")
|
---|
| 38 | I $D(ERR)!'C D ERR^DMSQU(TT,"","STATS: RECORD INSERT FAILED")
|
---|
| 39 | ;STORE P_ROW_COUNT IN SQLI_PRIMARY_KEY
|
---|
| 40 | S TT=1.5218,PEI=$O(^DMSQ("E","D",TI,"")),PI=0
|
---|
| 41 | F I=1:1 S PI=$O(^DMSQ("P","B",PEI,PI)) Q:'PI D
|
---|
| 42 | . S IEN=PI_"," K FDA
|
---|
| 43 | . S FDA(TT,IEN,5)=C(I) ;ESTIMATED ROW COUNT FOR THIS LEVEL
|
---|
| 44 | . S C=$$PUT^DMSQU(IEN,"FDA","ERR")
|
---|
| 45 | . I $D(ERR)!'C D ERR^DMSQU(TT,5,"STATS: KEY COUNT INSERT FAILED")
|
---|
| 46 | Q
|
---|
| 47 | CNT(OI) ;ACCUMULATE NODE COUNT
|
---|
| 48 | F S K(OI)=$O(@G(OI)) D Q:'OI
|
---|
| 49 | . I @CND D
|
---|
| 50 | . . S CT=CT+1,C(OI)=C(OI)+1 I CT=MC S OI=0
|
---|
| 51 | . . E I OI<O S OI=OI+1,K(OI)=INI
|
---|
| 52 | . E S OI=OI-1
|
---|
| 53 | Q
|
---|
| 54 | EP ;EDIT PROTECT ALL SQLI FILES
|
---|
| 55 | Q:$G(DUZ(0))'="@" N DMF,DMFI W !,"EDIT-PROTECTING SQLI FILES..."
|
---|
| 56 | S DMF=1.520
|
---|
| 57 | F S DMF=$O(^DD(DMF)) Q:DMF>1.52192 S DMFI=0 W DMF D
|
---|
| 58 | . F S DMFI=$O(^DD(DMF,DMFI)) Q:'DMFI D
|
---|
| 59 | . . W ?10,DMFI,?20,$G(^DD(DMF,DMFI,9))
|
---|
| 60 | . . S ^(9)="^" W "->^",!
|
---|
| 61 | W "Done" Q
|
---|
| 62 | EU ;EDIT UNPPROTECT ALL SQLI FILES
|
---|
| 63 | Q:$G(DUZ(0))'="@" N DMF,DMFI W !,"EDIT-UNPROTECTING SQLI FILES..."
|
---|
| 64 | S DMF=1.520
|
---|
| 65 | F S DMF=$O(^DD(DMF)) Q:DMF>1.52192 S DMFI=0 W DMF D
|
---|
| 66 | . F S DMFI=$O(^DD(DMF,DMFI)) Q:'DMFI D
|
---|
| 67 | . . W ?10,DMFI,?20,$G(^DD(DMF,DMFI,9))
|
---|
| 68 | . . S ^(9)="@" W "->@",!
|
---|
| 69 | W "Done" Q
|
---|