Server Representation of DbCreate()

  Previous topic Next topic  

The class representation after DbCreate() and INDEX ON ... commands in example code will look like:

/// CreationDate = 20150429; CreationTime = 12:53:53; UserName = _SYSTEM; IP = 127.0.0.1; Node = VOUCH; Executable = cachemgr.exe

Class SQLUSER.MYTABLE Extends %Persistent [ ClassType = persistent, DdlAllowed, Owner = {_SYSTEM}, ProcedureBlock, SqlRowIdPrivate, SqlTableName = MYTABLE, StorageStrategy = "" ]

{

 

Property CODE As %Library.String(COLLATION = "SqlString", MAXLEN = 8, TRUNCATE = 1) [ SqlColumnNumber = 2, SqlFieldName = CODE ];

 

Property DOB As %Library.Date [ SqlColumnNumber = 5, SqlFieldName = DOB ];

 

Property IdxDOB As %Library.Date [ Calculated, SqlComputeCode = {

  Set xyz = {DOB}

  Set xyz = $Select( $$LEFT^Rdd({NAME},1)="P":xyz,1:-1 )

  Set {IdxDOB}=xyz

  }, SqlComputed, SqlComputeOnChange = (DOB, NAME), SqlFieldName = IdxDOB ];

 

Property IdxSOURCE As %Library.String(COLLATION = "SqlString") [ Calculated, SqlComputeCode = {

  Set xyz = $$PAD^Rdd({PROCNAME},32)_$$PAD^Rdd({PROCLINE},7)

  Set {IdxSOURCE}=xyz

  }, SqlComputed, SqlComputeOnChange = (PROCNAME, PROCLINE), SqlFieldName = IdxSOURCE ];

 

Property MRD As %Library.Boolean [ SqlColumnNumber = 6, SqlFieldName = MRD ];

 

Property NAME As %Library.String(COLLATION = "SqlString", MAXLEN = 25, TRUNCATE = 1) [ SqlColumnNumber = 3, SqlFieldName = NAME ];

 

Property ONE As %Library.String(COLLATION = "SqlString", MAXLEN = 1, TRUNCATE = 1) [ SqlColumnNumber = 10, SqlFieldName = ONE ];

 

Property PROCLINE As %Library.String(COLLATION = "SqlString", MAXLEN = 7, TRUNCATE = 1) [ SqlColumnNumber = 9, SqlFieldName = PROCLINE ];

 

Property PROCNAME As %Library.String(COLLATION = "SqlString", MAXLEN = 32, TRUNCATE = 1) [ SqlColumnNumber = 8, SqlFieldName = PROCNAME ];

 

Property SALARY As %Library.Numeric(MAXVAL = 9999999.99, MINVAL = -9999999.99, SCALE = 2) [ SqlColumnNumber = 4, SqlFieldName = SALARY ];

 

Property TEXT As %Library.GlobalBinaryStream [ SqlColumnNumber = 7, SqlFieldName = TEXT ];

 

/// 1^CODE^Code^F^^C^8^F^~

Index CODE On CODE [ SqlName = CODE, Type = index ];

 

/// 4^DOB^DOB^F^Left(name,1)="P"^D^0^F^~

Index DOB On IdxDOB [ SqlName = DOB, Type = index ];

 

/// 2^NAME^Name^F^^C^25^F^~

Index NAME On NAME [ SqlName = NAME, Type = index ];

 

/// 6^ONE^One^F^^C^1^F^~

Index ONE On ONE [ SqlName = ONE, Type = index ];

 

/// 3^SALARY^Salary^F^^N^0^F^~

Index SALARY On SALARY [ SqlName = SALARY, Type = index ];

 

/// 5^SOURCE^ProcName + ProcLine^F^^C^39^F^~

Index SOURCE On IdxSOURCE [ SqlName = SOURCE, Type = index ];

 

ClassMethod %OnDelete(oid As %ObjectIdentity) As %Status [ Private ]

{

  set x = $$RecordCopy^Rdd( ..%PackageName(), ..%ClassName(), $list( oid,1 ) )

 

  quit $$$OK

}

 

Trigger RecCopyOnDelete [ Event = DELETE ]

{

  set x = $$RecordCopy^Rdd( ..%PackageName(), ..%ClassName(), %ROWID )

}