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 ) } |